模型可以运行,但信号不正确,且无法实现日内平仓,求高手支持 [金字塔]
- 咨询内容:
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1),NMIN(10,1,100,1),SS(1,1,10000,1);
C1:="Y01$CLOSE";
C2:="M01$CLOSE";
Spread:=C1-C2;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
Spread[1]:REF(Spread,1);
HH:HHV(Spread[1],225);
LL:=LLV(Spread[1],225);
OO:=valuewhen(date<>ref(date,1),Spread);
T1:=TIME>OPENTIME(1) AND TIMET2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
//交易条件
浮动区间:=HH-LL;//RANGE
上轨:OO+K1*浮动区间,,COLORYELLOW;
下轨:OO-K2*浮动区间,,COLORYELLOW;
//交易条件
开多条件:=Spread>上轨 AND HOLDING=0;
开空条件:=Spread<下轨 AND HOLDING=0;
//交易系统
开多:BUY(开多条件 AND T1 AND CYC>1 AND TIME<1445,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1 AND TIME<1445,手数,MARKET);
IF STRCMP(STKLABEL,'YO1') = 0 THEN
BEGIN
SELL(T2,手数,MARKET);
BUY(开多条件 AND T1 AND CYC>1 AND TIME<1445,手数,MARKET);
BUYSHORT(开空条件 AND T1 AND CYC>1 AND TIME<1445,1,MARKET);
SELLSHORT(T2,手数,MARKET)
END
IF STRCMP(STKLABEL,'M01') = 0 THEN
BEGIN
SELL(T2,手数,MARKET);
BUY(开空条件 AND T1 AND CYC>1 AND TIME<14450,1,MARKET);
BUYSHORT(开多条件 AND T1 AND CYC>1 AND TIME<1445,1,MARKET);
SELLSHORT(T2,手数,MARKET)
end
- 金字塔客服:
这是根据软件经典的DS日内模型改变的价差套利版本,因为今年行情反向套利机会很多,如七八九月份的豆油豆粕价差反向套利,鉴于此,我就把原先收盘价替换成价差,赌的是日内价差的持续扩大,但编写出来之后发现几个问题
1,豆粕可以开仓,豆油无法开仓
2,无法达成日内平仓
3,信号不准确
请版主提供一些思路或讲解,谢谢
- 用户回复:
更正一下,函数为
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1),NMIN(10,1,100,1),SS(1,1,10000,1);
C1:="Y01$CLOSE";
C2:="M01$CLOSE";
Spread:=C1-C2;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
Spread[1]:REF(Spread,1);
HH:HHV(Spread[1],225);
LL:=LLV(Spread[1],225);
OO:=valuewhen(date<>ref(date,1),Spread);
T1:=TIME>OPENTIME(1) AND TIMET2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
//交易条件
浮动区间:=HH-LL;//RANGE
上轨:OO+K1*浮动区间,,COLORYELLOW;
下轨:OO-K2*浮动区间,,COLORYELLOW;
//交易条件
开多条件:=Spread>上轨 AND HOLDING=0;
开空条件:=Spread<下轨 AND HOLDING=0;
//交易系统
IF STRCMP(STKLABEL,'YO1') = 0 THEN
BEGIN
SELL(T2,手数,MARKET);
BUY(开多条件 AND T1 AND CYC>1 AND TIME<1445,手数,MARKET);
BUYSHORT(开空条件 AND T1 AND CYC>1 AND TIME<1445,1,MARKET);
SELLSHORT(T2,手数,MARKET)
END
IF STRCMP(STKLABEL,'M01') = 0 THEN
BEGIN
SELL(T2,手数,MARKET);
BUY(开空条件 AND T1 AND CYC>1 AND TIME<14450,1,MARKET);
BUYSHORT(开多条件 AND T1 AND CYC>1 AND TIME<1445,1,MARKET);
SELLSHORT(T2,手数,MARKET)
end - 网友回复:
T2定义在哪里?
- 网友回复:
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;这是界定了日内阶段开平仓的时间
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容