关于编程的问题 (文华财经WH8赢智V8.2)

投资者咨询:关于编程的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-12-14 18:21
老师你好,我想请问一下,以下这个想法可以用编程实现吗?

我以价格突破布林线上轨做多,开仓价是100,开仓后,一旦价格返回跌破中轨就止损,这时候会有两种情况,一是开仓后价格继续上涨,中轨随着价格上涨上移,过了一段时间达到了我的开仓价100,那么这时候我被止损之后没有盈利也没有亏损;第二种情况时开仓后价格瞬间回落,马上跌破中轨导致亏损。

我有两个想法希望老师帮我看看能不能写成程序:
一是在上述的第二种情况发生后,价格跌破中轨,导致亏损之后,3天之内又再次突破上轨,请帮我自动再次开仓做多。

二是在第二种情况发生之后,如果价格跌破中轨之后3天之内又继续跌破下轨,在跌破下轨的时候反向开仓做空。
例子如图:


图片点击可在新窗口打开查看

所以逻辑是当价格向上突破失败,导致亏损平仓,如果它立刻再次向上突破,帮我自动做多,如果它立刻反向向下突破,帮我自动做空。这里面有几个限定条件:

1. 必须是先亏损平仓出局之后,才允许再次开仓或反向开仓;
2. 必须是平仓3天之内,再次突破上轨或反向突破下轨,才允许开仓;
3. 整个再次开仓或反向开仓只允许发生一次,比如说我先做多,亏损平仓出场后,3天之内价格再次突破上轨了,这些条件满足,导致我第2次开仓,但是如果这次又以亏损平仓出局,之后又在3天之内突破了上轨,就不允许再开第3次仓了。反向开仓也是一样,我先做多,亏损平仓出场后,3天之内价格跌破下轨,导致我第2次进场反向开仓,但是如果这次又以亏损平仓出局,之后在3天之内反向突破上轨,就不允许再开第3次仓反向做多了。

麻烦老师帮我看看怎么写比较好,拜托了!多谢多谢!

投资者咨询:关于编程的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-12-14 18:21
 额不好意思啊那个截图反了,不过意思是一样的,在那个截图里我当时先做空,然后平仓出局之后,价格立刻反向突破上轨,我是希望可以在它突破上轨时做多的。麻烦老师就帮我把做多情况下再次或反向做空的编写方式想一想,之后做空的那种情况我再按照老师的写法自己写就好了。拜托老师了!
技术人员回复
日期:2018-12-14 18:51
参考

MID:MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,26);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨

Q:=ISLASTSP&&BARSSP<=3&&TNUMSEQLOSS>=2;
W:=ISLASTBP&&BARSBP<=3&&TNUMSEQLOSS>=2;

CROSS(C,TOP)&&Q+W=0,BPK;
CROSSDOWN(C,BOTTOM)&&Q+W=0,SPK;
C<MID,SP;
C>MID,BP;
AUTOFILTER;
投资者咨询:关于编程的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-12-14 18:21
多谢老师!

我试了一下好像还是有点儿问题,麻烦老师再帮我看一看哈:


图片点击可在新窗口打开查看
按照上图,左边那个笑脸是我正常开仓做空的位置,然后突破失败了,价格回到中轨我被止损了,接下来价格在3根k线之内马上突破上轨,按道理来说我是希望这个时候进场做多的,但是在回测时它是以3楼里的
Q:=ISLASTSP&&BARSSP<=3&&TNUMSEQLOSS>=2;
W:=ISLASTBP&&BARSBP<=3&&TNUMSEQLOSS>=2;
CROSS(C,TOP)&&Q+W=0,BPK;
 这个方式帮我开仓做多的,这个我就不明白了啊,因为Q里的条件是ISLASTSP,而我刚刚是BP止损的,为啥会触及到开仓条件呢。

之后价格上涨一段又下跌回来,在中轨成功止损,这个时候是不亏钱的,那么按照1楼的想法的话接下来不会进行再次进场或反向进场,一是因为没亏钱,二是因为3根k线之内没有再次或反向突破布林线上下轨,但是回测时在蓝色箭头那里还是开仓了。

再之后就变成了只要一平仓就反向开新仓了。

请老师再帮我看看好不好,就按照上图里一开始的那个反向开仓是我希望能完成的开仓行为,它应该满足的条件是1.上一笔交易是亏损。2.在这个信号出现之前只允许出现2个连续亏损或以下,(这个请看一楼里第三个限定条件)。3.它是在止损平仓行为之后3根k线里再次或反向突破布林上下轨才触发的。4.一旦这笔开仓行为完成并且没有造成新的亏损之后,接下来是不可以再以相同条件再次开仓的,因为这笔交易并没有亏损。

拜托老师啦!麻烦你们了!
技术人员回复
日期:2018-12-19 17:09
 因为开仓条件就是上穿上轨

可事实上上穿上轨是很容易满足的条件,可能现在BK开仓后,后续几十根k线之后又上穿了,这时候开仓吗?

您在条件中没有说明这种情况,那么给您的模型就是把每次开仓都和之前比较

既把满足连续亏损2次,同时距离平仓在3根k线以内的都删除,您图中信号都是这么执行的

再给您改下,添加不同向开仓

MID:MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,26);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:MID-2*TMP2;//布林通道下轨

Q:=ISLASTSP&&BARSSP<=3&&TNUMSEQLOSS>=2;
W:=ISLASTBP&&BARSBP<=3&&TNUMSEQLOSS>=2;
A:=ISLASTSP&&LASTOFFSETPROFIT>0;
B:=ISLASTBP&&LASTOFFSETPROFIT>0;
CROSS(C,TOP)&&Q+W=0&&A=0,BPK;
CROSSDOWN(C,BOTTOM)&&Q+W=0&&B=0,SPK;
C<MID,SP;
C>MID,BP;
AUTOFILTER;
投资者咨询:关于编程的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-12-14 18:21
 哦哦我晕不好意思那是我没说清楚,我本身是有别的开仓条件的,
EXIST(CROSS(TOP-BOTTOM,0.11),2)&&EXIST(H>TOP,2)&&REF(C>MID,1)&&O>TOP&&L<=TOP&&TIME>=1400&&TIME<=2100&&PERIOD=3,BK;
EXIST(CROSS(TOP-BOTTOM,0.11),2)&&EXIST(H>TOP,2)&&REF(C>MID,1)&&O>MID&&O<TOP&&TIME>=1400&&TIME<=2100&&PERIOD=3,BK;
EXIST(CROSS(TOP-BOTTOM,0.11),2)&&EXIST(L<BOTTOM,2)&&REF(C<MID,1)&&O<BOTTOM&&H>=BOTTOM&&TIME>=1400&&TIME<=2100&&PERIOD=3,SK;
EXIST(CROSS(TOP-BOTTOM,0.11),2)&&EXIST(L<BOTTOM,2)&&REF(C<MID,1)&&O<MID&&O>BOTTOM&&TIME>=1400&&TIME<=2100&&PERIOD=3,SK;

这些是我正常的开仓条件,然后1楼里跟您咨询的那些想法,是当以上述这些条件开仓的单子造成亏损之后,然后又在3根k线里,再次按照同方向突破,或反向突破,再开仓的。


图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:反向截图2.png

还是这个例子,顺序是上述的条件们被满足,做空开仓,然后价格回归中轨,以亏损平仓出场,并且又在3根k线里反向突破了上轨,那这个时候才允许以3楼的条件们开仓做多,然后假设说在这个例子里开仓做多之后,我又以亏损平仓出场了,那么这时候我就连续亏损2次了,之后就算价格在3根k线内又突破了上轨或下轨,我也不可以再以3楼的条件们开仓了,而回归成以上述我本身的开仓条件们开仓。

这样说您可以理解我的想法吗?麻烦您再帮我想想这个改咋写呢,多谢多谢!