
等级: 新手上路
- 注册:
- 2023-6-13
- 曾用名:
|

楼主 |
发表于 2023-9-27 11:24
|
显示全部楼层
金字塔的工程师你好。请在下面策略里面加上:一、如果是“上涨行情:=CLOSE/MA(CLOSE,20)>1.05;”启用值为:LH=7,LL=-5; 二、如果是“盘整行情”:=CLOSE/MA(CLOSE,20)<1.05 and CLOSE/MA(CLOSE,20)>0.95;启用值为:LH=6,LL=-6; 三、如果是“下跌行情”:=CLOSE/MA(CLOSE,20)<0.95;启用值为:LH=5,LL=-5; 本人是小白,请麻烦加好完整的发过来,如果你们有上涨行情、盘整行情、下跌行情的表达方式就用你们的策略函数,谢谢。
BIAS:=(CLOSE-MA(CLOSE,M))/MA(CLOSE,M)*100;//LU测试210分钟为了最佳策略盈亏比1.27
手数:=1;
//交易条件
开多平空条件:=CROSS(LL,BIAS*100);//开多平空条件
开空平多条件:=CROSS(BIAS*100,LH);//开空平多条件
INPUT:N(10,1,20,1),M(12,1,50,2),LL(-6,-40,-1,1),LH(6,1,40,1);//N是提前的分钟数.16-33行是客服给的每个小节收盘前平仓函数
MARK:=0;//用于记录当前是否满足某个收盘K结束前N分钟的变量
FOR I=0 TO 3 DO //循环遍历每个收盘时间来进行判断。这里可以调整I起始位置 来控制需要处理的收盘节点。
BEGIN
abb:=timetot0(CLOSETIME(I))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时,在一个K上对应一个固定值
abb3:=timetot0(CLOSETIME(I))-timetot0(dynainfo(207)),NODRAW;//当前时间(当前的北京时间)距离收盘K时间 , 在最新K上会一直变动。因为这个返回的是具体秒数
IF (abb<N*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and abb3>=0 and abb3<N*60) THEN MARK:=1;
END
if MARK then //兼顾实际交易时候的信号和历史回测信号
begin
收盘平多:sell(holding>0,holding,market);
收盘平空:sellshort(holding<0,holding,market);
end
//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件 and holding=0 and not(MARK),手数,MARKET);
开空:BUYSHORT(开空平多条件 and holding=0 and not(MARK),手数,MARKET); |
|