策略需求文档 20250313
1.平台
tbquant
2.策略类型
图表
3.需求内容
对附件进行改编,去除可能存在的闪烁(具体如何闪烁,未知,需要检验)
Params
//此处添加参数
Vars
//此处添加变量
Series<Numeric> MA3;
Series<Numeric> JRH;
Series<Numeric> JRL;
Series<Numeric> YTSL;
Series<Bool> VAR1;
Series<Bool> VAR2;
Series<Bool> VAR3;
Series<Bool> VAR4;
Series<Bool> VAR5;
Series<Bool> VAR6;
Series<Bool> VAR7;
Series<Bool> VAR8;
Series<Bool> VAR9;
Series<Bool> VARA;
Series<Bool> VARB;
Series<Bool> VARC;
Series<Bool> VARD;
Series<Bool> VARE;
Series<Bool> VARF;
Series<Bool> VAR10;
Series<Bool> VAR11;
Series<Bool> VAR12;
Series<Bool> VAR13;
Series<Bool> VAR14;
Series<Bool> VAR15;
Series<Bool> VAR16;
Series<Bool> VAR17;
Series<Bool> VAR18;
Series<Bool> VAR19;
Series<Bool> VAR1A;
Series<Bool> ZD;
Series<Bool> ZK;
Series<Numeric> DKX;
Defs
//此处添加公式函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
JRH = Highest(Close, 2); // JRH:=HHV(C,2);
JRL = Lowest(close, 2); // JRL:=LLV(C,2);
MA3 = Average(close, 3); // MA3:=MA(CLOSE,3);
YTSL = (3 * CLOSE + LOW + OPEN + HIGH) / 6; // YTSL:=(3*CLOSE+LOW+OPEN+HIGH)/6;
VAR1 = (CLOSE > CLOSE[1] AND CLOSE > CLOSE[2]);
VAR2 = (VAR1[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR3 = (VAR2[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR4 = (VAR3[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR5 = (VAR4[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR6 = (VAR5[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR7 = (VAR6[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR8 = (VAR7[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR9 = (VAR8[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VARA = (VAR9[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VARB = (VARA[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VARC = (VARB[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VARD = (CLOSE < CLOSE[1] AND CLOSE < CLOSE[2]);
VARE = (VARD[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VARF = (VARE[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR10 = (VARF[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR11 = (VAR10[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR12 = (VAR11[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR13 = (VAR12[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR14 = (VAR13[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR15 = (VAR14[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR16 = (VAR15[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR17 = (VAR16[1] AND CLOSE <= CLOSE[1] AND CLOSE >= CLOSE[2]);
VAR18 = (VAR17[1] AND CLOSE >= CLOSE[1] AND CLOSE <= CLOSE[2]);
VAR19 = ((VARD[1] OR VARE[1] OR VARF[1] OR VAR10[1] OR VAR11[1] OR VAR12[1] OR VAR13[1] OR VAR14[1] OR VAR15[1] OR VAR16[1] OR VAR17[1] OR VAR18[1]) AND VAR1);
VAR1A = ((VAR1[1] OR VAR2[1] OR VAR3[1] OR VAR4[1] OR VAR5[1] OR VAR6[1] OR VAR7[1] OR VAR8[1] OR VAR9[1] OR VARA[1] OR VARB[1] OR VARC[1]) AND VARD);
ZD = VAR19;
ZK = VAR1A;
DKX = (20 * YTSL + 19 * YTSL[1] + 18 * YTSL[2] + 17 * YTSL[3] + 16 * YTSL[4] + 15 * YTSL[5] + 14 * YTSL[6] + 13 * YTSL[7] + 12 * YTSL[8] + 11 * YTSL[9] + 10 * YTSL[10]
+ 9 * YTSL[11] + 8 * YTSL[12] + 7 * YTSL[13] + 6 * YTSL[14] + 5 * YTSL[15] + 4 * YTSL[16] + 3 * YTSL[17] + 2 * YTSL[18] + YTSL[20]) / 211;
PlotAuto("dkx", DKX > DKX[1]);
If(MarketPosition<>1 && ZD[1] && DKX[1] > DKX[2])
{
Buy(1, Max(close[1], Open));
}
If(MarketPosition<> -1 && ZK[1] && DKX[1] < DKX[2])
{
SellShort(1, Min(close[1], Open));
}
}
检查闪烁是一种特殊需求,暂时报价2000
1.因为交易逻辑可能修改,修改过程中,不保证任何回测收益,也可能交易点位跟提供的策略有较大差距。
2.验收过程中,代码会先发,但会同步运行一段时间观测闪烁问题。
https://shop.tbquant.net/overviews?item_id=1000026
确认的话,拍下对应链接,截图发在这里
你对这个代码的需求是什么
不会信号闪烁就可
老师好,蛇年快乐!
请问我这个策略开拓者可以实现吗?现在需要老师帮助解决的问题就是闪烁的事。
谢谢!
您好,策略本来的需求,请按置顶帖要求提交文档,我们再决定是否重写,还是在原来代码基础上修改。
我的意见是请老师在原来代码基础上修改好,如果不好操作再用这个逻辑重写。
谢谢老师!
需求需要具体内容
你现在的表述是只需要修改闪烁,就属于需求模糊
又或者你同意交给我们来处理闪烁情况,并接受我们的修改方案。
老师好!
我同意交给老师处理闪烁情况,并接受修改方案。
好 我们研究下这个代码
请问老师我这个可行吗?
请问老师我这个策略可行吗?
抱歉,帖子多可能没看到,给你加个急吧