以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请老师帮助一下,谢谢 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172899) |
-- 作者:100016292 -- 发布时间:2019/11/6 11:28:38 -- 请老师帮助一下,谢谢 MM:=CROSS(A,B); WW:=CROSS(B,A); G20:=HHV(H,ENTERBARS)-CLOSE>N*MINDIFF;//高点回落20个最小变动价位 D20:=CLOSE-LLV(L,ENTERBARS)>N*MINDIFF;//低点回升20个最小变动价位 KD:=MM; //开多并平所有空单条件 KKD:=持有多头信号时价格回落开仓价N个价位时加仓1次; //加多条件 PD:=WW; //平多条件 JD:=持有多仓信号时价格上涨N个价位时减去1次仓; //减多条件 KK:=WW; //开空并平所有多单条件 KKK:=持有空头信号时价格反弹开仓价N个价位时加仓1次; //加多条件 PK:=MM; //平空条件 JK:=持有空头信号时价格下跌N个价位时减去1次仓; //加空条件 交易语句不会写,请帮助一下
|
-- 作者:FireScript -- 发布时间:2019/11/6 13:24:31 -- INPUT:N(20,1,100,1),P(3,1,100,1);//P是开仓以及加仓百分比 MM:=CROSS(MA(C,5),MA(C,10)); WW:=CROSS(MA(C,10),MA(C,5)); G20:=HHV(H,ENTERBARS+2)-CLOSE>N*MINDIFF;//高点回落20个最小变动价位 D20:=CLOSE-LLV(L,ENTERBARS+2)>N*MINDIFF;//低点回升20个最小变动价位 KD:=MM; /////////////////多头部分 if kd then //开多仓 begin sellshort(holding>0,holding,market); buy(holding=0,P%,market); end KKD:=HHV(H,ENTERBARS+2)-CLOSE>N*MINDIFF and holding>0; 加多:buy(KKD,P%,market);//加多仓 PD:=WW; sell(PD and holding>0,holding,market);//多头全平 JD:=holding>0 and CLOSE-LLV(L,ENTERBARS+2)>N*MINDIFF; 减多:sell(JD,holding/2,market);//多头减仓 ///////////空头部分 KK:=WW; if kk then //开空仓 begin sell(holding<0,holding,market); buyshort(holding=0,P%,market); end KKK:=CLOSE-LLV(L,ENTERBARS+2)>N*MINDIFF and holding>0; 加空:buyshort(KKK,P%,market);//加空仓 PK:=MM; sellshort(Pk and holding<0,holding,market);//平空仓 JK:=holding<0 and HHV(H,ENTERBARS+2)-CLOSE>N*MINDIFF; //减空仓 减空:sellshort(JK,holding/2,market); 1.开仓以及加仓 均按照参数P控制的百分百进行。默认是3% 可自行进行调整。 N也设置成参数了,可自行进行参数调整。 2.平仓是半仓 向下取整的的。如11手 半仓按照5手平 3.G20 D20计算位置是在开仓代码之前 ,如果开仓K价格波动就达到20点,那么是无法触发平仓的。因此调整到加减仓位置 直接进行计算。不使用这2个变量。 4. ENTERBARS+2 调整成这样是为了照顾开仓K价格波动达到20点的情况。如果不需要考虑开仓K的情况,需额外再调整下。
[此贴子已经被作者于2019/11/7 9:36:43编辑过]
|
-- 作者:100016292 -- 发布时间:2019/11/6 13:47:22 -- 请把我想表达的意思写全了加载后看一下再发,谢谢,MM: MM:=CROSS(MA(C,5),MA(C,10)); WW:=CROSS(MA(C,10),MA(C,5)); |
-- 作者:100016292 -- 发布时间:2019/11/6 13:50:19 -- 手数为百分比,减仓为开仓数的50% |
-- 作者:yukizzc -- 发布时间:2019/11/6 14:31:32 -- sell(1,holding/2,marketr); 数量用持仓除以2就行了
|
-- 作者:100016292 -- 发布时间:2019/11/6 17:20:03 -- 请把以上代码加载到图上看一下,没有信号 |
-- 作者:100016292 -- 发布时间:2019/11/6 17:20:49 -- 能不能写完整呀 |
-- 作者:yukizzc -- 发布时间:2019/11/6 17:25:59 -- MM:=CROSS(A,B); WW:=CROSS(B,A); G20:=HHV(H,ENTERBARS)-CLOSE>N*MINDIFF;//高点回落20个最小变动价位 D20:=CLOSE-LLV(L,ENTERBARS)>N*MINDIFF;//低点回升20个最小变动价位 KD:=MM; //开多并平所有空单条件 if kd and holding<=0 then begin
sellshort(1,holding,marketr);
buy(1,1,marketr); end KKD:=持有多头信号时价格回落开仓价N个价位时加仓1次; //加多条件 if kdd then begin
buy(1,1,marketr); end PD:=WW; //平多条件 if pd then begin
sell(1,holding,marketr); end JD:=持有多仓信号时价格上涨N个价位时减去1次仓; //减多条件 if jd then begin
sell(1,holding/2,marketr); end |
-- 作者:yukizzc -- 发布时间:2019/11/6 17:26:39 -- 具体开平的条件请自行完成了,比如pd jd这些都填写完成的话就可以了 |
-- 作者:100016292 -- 发布时间:2019/11/6 20:14:31 -- 我靠,又是只写一半,空的呢? |