请教老师修改一个公式,止盈的公式 (文华财经WH8赢智V8.2)

投资者咨询:请教老师修改一个公式,止盈的公式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2017-12-25 12:19
 请教老师修改一个公式,止盈的公式

1.这是跟踪止盈
BKHIGH>=BKPRICE+10*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP;
SKLOW<=SKPRICE-10*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP;

老师请帮忙改成:
当价格盈利20点时止盈2手,当价格盈利25点时止盈3手,当价格盈利30点时止盈1手,
剩余的没止盈的当价格反弹到开仓价和开仓后的最低价的一半全都止盈.

例:按PP1805合约.
我在9300价位做空20手,当价格下跌10点(9290价),跟踪止盈启动,如果最低价在9290后反弹了,那么就会在9295全平仓.
如果价格又跌到了9280时,(这时盈利20点了),这时可以止盈2手.还有18手的持仓.
当价格又到了9275时,(这时盈利为25点了).这时可以止盈3手还有15手的持仓.
当价格又到了9270时,(这时盈利为30点了).这时可以止盈手还有14手的持仓.

总计平仓6手,还有14手持仓,当价格又跌到了9220时,这时盈利有80点了,当价格反弹到80点的一半,(就是 40点时全都止盈 ).
如果当最低价格只到了9275时就反弹了,那么剩余的持仓等价格反弹到9300-9275的一半,(就是25点的一半12点或13点 )就全部止盈. 

备注:这是一个跟踪止盈加固定点差的方法.(另外平仓的手数请用红色标记标下,方便我以后好修正) 


2.这是固定价差平仓,,修改后我的固定价差平仓要不要删了?还是先达到的条件先平仓?
ZY1:=IF(ISCONTRACT('PP'),100,IF(ISCONTRACT('螺纹'),50,IF(ISCONTRACT('沪镍'),70,IF(ISCONTRACT('恒指'),50,0))));
C>=BKPRICE+ZY1*MINPRICE,SP;
C<=SKPRICE-ZY1*MINPRICE,BP;
ZS1:=IF(ISCONTRACT('PP'),30,IF(ISCONTRACT('螺纹'),20,IF(ISCONTRACT('沪镍'),30,IF(ISCONTRACT('恒指'),20,0))));
C<=BKPRICE-ZS1*MINPRICE,SP;
C>=SKPRICE+ZS1*MINPRICE,BP;


3.这是我的指令价模式, MULTSIG(0,0,2,0); ,这里的信号数量要不要修改?有没有影响的?

祝老师圣诞节快乐!

 
技术人员回复
日期:2017-12-25 13:13
1、空仓同理

BKHIGH>=BKPRICE+20*MINPRICE&&BKHIGH<BKPRICE+25*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL);
BKHIGH>=BKPRICE+20*MINPRICE&&BKHIGH<BKPRICE+25*MINPRICE,SP(2);

BKHIGH>=BKPRICE+25*MINPRICE&&BKHIGH<BKPRICE+30*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL);
BKHIGH>=BKPRICE+25*MINPRICE&&BKHIGH<BKPRICE+30*MINPRICE,SP(3);

BKHIGH>=BKPRICE+30*MINPRICE&&BKHIGH<BKPRICE+80*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL);
BKHIGH>=BKPRICE+30*MINPRICE&&BKHIGH<BKPRICE+80*MINPRICE,SP(1);

BKHIGH>=BKPRICE+80*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL);
   
2、有浮动价差止盈了,您固定止盈在加入就限制了

但是您模型中没有止损的条件,建议您增加上

3、加入没有影响,执行过程就是开仓平仓信号都是出信号立即下单,一根k线最多2个信号
 
投资者咨询:请教老师修改一个公式,止盈的公式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2017-12-25 12:19
 老师可否这样写?
1。盈利10点启动跟单止盈?
BKHIGH>=BKPRICE+10*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP;
SKLOW<=SKPRICE-10*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP;

2。BKHIGH>=BKPRICE+20*MINPRICE&&BKHIGH<BKPRICE+25*MINPRICE,SP(2);当盈利达到20点时止盈2手?这时价格如果向上并到1会按盈利的一半止盈?,如盈利20点后在向下达到    BKHIGH>=BKPRICE+25*MINPRICE&&BKHIGH<BKPRICE+30*MINPRICE,SP(3);就是盈利达到25点时在平3手?
在向下在达到   BKHIGH>=BKPRICE+30*MINPRICE&&BKHIGH<BKPRICE+80*MINPRICE,SP(1);盈利30点平一手?

在向下达到  BKHIGH>=BKPRICE+80*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL);盈利80点后面全都按1止盈?


整个方法这样的吗?
如下:
  BKHIGH>=BKPRICE+10*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP;多单跟踪止盈
SKLOW<=SKPRICE-10*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP;空 单跟踪止盈

BKHIGH>=BKPRICE+20*MINPRICE&&BKHIGH<BKPRICE+25*MINPRICE,SP(2);这是不是盈利达到了20点至25点平2手?
BKHIGH>=BKPRICE+25*MINPRICE&&BKHIGH<BKPRICE+30*MINPRICE,SP(3);这是不是盈利达到了50点至30点平3手?
BKHIGH>=BKPRICE+30*MINPRICE&&BKHIGH<BKPRICE+80*MINPRICE,SP(1);这是不是盈利达到了30点至80点平1手?
这样的话超过30点没平仓的话 就按跟踪止盈平?

2.另外固定价差中有止盈和止损.我将固定价差的止盈放大点就没有限制了?上面的是PP盈利100点就平?要是真的到了100点会按上面的方法止盈还是按固定价差止盈?

3.我的指令价函数一K线最多出二个信号,那么我一K线分多次平仓有没有影响?

 备注,如这样的方法是对的,我自已学的编下做空的止盈,到时请老师批改?
技术人员回复
日期:2017-12-25 17:29
1.是的

2.最高价缺少限制,2楼给您修改了下,您在看下

BKHIGH>=BKPRICE+10*MINPRICE&&BKHIGH<BKPRICE+20*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(1);//多单跟踪止盈
SKLOW<=SKPRICE-10*MINPRICE&&SKLOW>SKPRICE-20*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(1);//空 单跟踪止盈

3.设置后也是执行的,先达到哪个就执行哪个

4.可以的,盘中满足多个平仓条件,可以多次执行
投资者咨询:请教老师修改一个公式,止盈的公式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2017-12-25 12:19
 老师,我对这个不是很懂。老师加了一个函数或是改了,我就不懂了

老师能不下这样?
如下:
这个是跟单止盈
BKHIGH>=BKPRICE+10*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP;多单跟踪止盈
SKLOW<=SKPRICE-10*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP;空 单跟踪止盈

这个是达到了一定的点数止盈
这是盈利PP合约20点后止盈
ZY1:=IF(ISCONTRACT('PP'),20,IF(ISCONTRACT('螺纹'),10,IF(ISCONTRACT('沪镍'),20,IF(ISCONTRACT('恒指'),20,0))));
C>=BKPRICE+ZY1*MINPRICE,SP(2);;
C<=SKPRICE-ZY1*MINPRICE,BP(2);;
这是盈利PP合约25点后止盈
ZY1:=IF(ISCONTRACT('PP'),25,IF(ISCONTRACT('螺纹'),20,IF(ISCONTRACT('沪镍'),20,IF(ISCONTRACT('恒指'),20,0))));
C>=BKPRICE+ZY1*MINPRICE,SP(3);;
C<=SKPRICE-ZY1*MINPRICE,BP(3);;
这是盈利PP合约30点后止盈
ZY1:=IF(ISCONTRACT('PP'),30,IF(ISCONTRACT('螺纹'),30,IF(ISCONTRACT('沪镍'),20,IF(ISCONTRACT('恒指'),20,0))));
C>=BKPRICE+ZY1*MINPRICE,SP(1);;
C<=SKPRICE-ZY1*MINPRICE,BP(1);;
这是盈利PP合约100点后止盈
ZY1:=IF(ISCONTRACT('PP'),100,IF(ISCONTRACT('螺纹'),30,IF(ISCONTRACT('沪镍'),20,IF(ISCONTRACT('恒指'),20,0))));
C>=BKPRICE+ZY1*MINPRICE,SP;;
C<=SKPRICE-ZY1*MINPRICE,BP;;

老师这样能行吗?这样当盈利了25点后价格不向下了,在向上时会不会在20点的止盈时在平仓?
还有当平仓后面没加手数是不是代表全平?加了才是平仓的手数?


 这个是多合约不同的平仓点数吗?
技术人员回复
日期:2017-12-26 8:47
 1、先给您解释下2楼的写法

最高价在20―25这个区间范围内,回撤一半的时候平仓

如果只限定大于20,而不限定小于25,那么如果出现一个大的跳空,直接盈利80个点,那么多条平仓条件将同时满足了

即最高价大于10,20,25,30,80的时候都满足条件了,那么执行的时候是只会执行最先写的条件


2、老师这样能行吗?这样当盈利了25点后价格不向下了,在向上时会不会在20点的止盈时在平仓?

PP合约也是同理

建议您前后加两条件,即在盈利20-25个点平仓2手,25-30个点平仓3手,30-100个点以上平仓1手等

会执行的,25不向下的时候,价格回到20个点 ,会执行止盈的


3、还有当平仓后面没加手数是不是代表全平?加了才是平仓的手数?

BKVOL/SKVOL 表示当前合约的持仓手数,BP(SKVOL)/SP(BKVOL),才表示全平的
投资者咨询:请教老师修改一个公式,止盈的公式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2017-12-25 12:19
 谢谢老师,老师为我们考虑的很好.

一.2.最高价缺少限制,2楼给您修改了下,您在看下

BKHIGH>=BKPRICE+10*MINPRICE&&BKHIGH<BKPRICE+20*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(1);//多单跟踪止盈
SKLOW<=SKPRICE-10*MINPRICE&&SKLOW>SKPRICE-20*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(1);//空 单跟踪止盈
这个绿色的老师加的,为了防止跳空后出现多条件平仓?但后面的手数也是写?后面的是手数,如果改成BP(SKVOL)/SP(BKVOL),后是不是当盈利在10以上至20点之间回测到了盈利的一半的时候就全止盈了?

二,老师的写是所有的品种都是这样执行吗?但是每个品种的点数都不一样?这个是不是只能自已改?

三.我的程序化中有指令价函数,这个与定义手数相融吗?

 
技术人员回复
日期:2017-12-26 13:44
 1.这个绿色的老师加的,为了防止跳空后出现多条件平仓?但后面的手数也是写?

是的,您如果在模型中定义了一个条件的平仓手数,那么所有指令的手数都需要定义的

2.后面的是手数,如果改成BP(SKVOL)/SP(BKVOL),后是不是当盈利在10以上至20点之间回测到了盈利的一半的时候就全止盈了?

是的

3.老师的写是所有的品种都是这样执行吗?但是每个品种的点数都不一样?这个是不是只能自已改?

如果您不限定品种,那么所有品种都是按照这个点数执行的

如果不同的品种需要设置不同的点数,您可以如您5楼的写法,进行限制下

4.我的程序化中有指令价函数,这个与定义手数相融吗?

相融的

写手数的模型即为加减仓模型,不写的为一开一平过滤模型

指令价模型与收盘价模型是相对的,一个指令只能有一种执行方式

所以指令价模型与加减仓模型不是一个类别下,不矛盾的

投资者咨询:请教老师修改一个公式,止盈的公式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2017-12-25 12:19
 请老师在看下,
这个是不是我要的意思

开多止盈

 

BKHIGH>=BKPRICE+10*MINPRICE&&BKHIGH<BKPRICE+20*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL);//多单跟踪止盈//盈利大于10小于20

 

BKHIGH>=BKPRICE+20*MINPRICE&&BKHIGH<BKPRICE+25*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL); ;//多单跟踪止盈//盈利大于20小于25

 

BKHIGH>=BKPRICE+20*MINPRICE&&BKHIGH<BKPRICE+25*MINPRICE,SP(2); //盈利达到20点止盈二手

 

BKHIGH>=BKPRICE+25*MINPRICE&&BKHIGH<BKPRICE+30*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL); //盈利大于25小于30

 

BKHIGH>=BKPRICE+25*MINPRICE&&BKHIGH<BKPRICE+30*MINPRICE,SP(3); //盈利达到25点止盈三手

 

 

BKHIGH>=BKPRICE+30*MINPRICE&&BKHIGH<BKPRICE+80*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL); //多单跟踪止盈//盈利大于30小于80

 

BKHIGH>=BKPRICE+30*MINPRICE&&BKHIGH<BKPRICE+80*MINPRICE,SP(1); //盈利达到30点止盈一手

 

BKHIGH>=BKPRICE+80*MINPRICE&&C<=BKHIGH-(BKHIGH-BKPRICE)/2,SP(BKVOL); //盈利达到80点后按最大盈利的一半全止盈

 

下面的是我改的    做空的止盈,请老师修改下:


单跟踪止盈

SKLOW<=SKPRICE-10*MINPRICE&&SKLOW>SKPRICE-20*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(SKVOL);// 单跟踪止盈,盈利大于10小于20


SKLOW<=SKPRICE-20*MINPRICE&&SKLOW>SKPRICE-25*MINPRICE,BP(2);盈利达到20点止盈二手

SKLOW<=SKPRICE-20*MINPRICE&&SKLOW>SKPRICE-25*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(SKVOL);//盈利大于20小于25

 

SKLOW<=SKPRICE-25*MINPRICE&&SKLOW>SKPRICE-30*MINPRICE,BP(3);盈利达到25点止盈三手

SKLOW<=SKPRICE-25*MINPRICE&&SKLOW>SKPRICE-30*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(SKVOL);//盈利大于25小于30

 

SKLOW<=SKPRICE-30*MINPRICE&&SKLOW>SKPRICE-80*MINPRICE,BP(1);盈利达到30点止盈一手

SKLOW<=SKPRICE-30*MINPRICE&&SKLOW>SKPRICE-80*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(SKVOL);//盈利大于30小于80

 

SKLOW<=SKPRICE-80*MINPRICE&&C>=SKLOW+(SKPRICE-SKLOW)/2,BP(SKVOL);    //盈利达到80点后按最大盈利的一半全止盈



1。这个做多与做空的止盈是不是复制到我的策略中就可以了?

2。我在后面加了备注是我理解的,请问理解的是不是对的?

3.这个是一开一平模式,AUTOFILTER;   请问要改成什么样的加减仓模式?


 

   
技术人员回复
日期:2017-12-26 15:18
给您核对了下源码,您空多条件都是对的

1.是的

2.理解的对

3.将源码中AUTOFILTER函数去掉就可以了

加减仓模型运行的机制,您了解下:http://www.wenhua.com.cn/popwin/feiguolvmx2.htm

一开一平过滤模型的运行机制,您对比看下:http://www.wenhua.com.cn/popwin/guolvmx2.htm