关于止盈止损 (文华财经)

投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26
 老师,请帮我写个止盈止损
第一种情况
A,bk;//头寸
AA,bk;//这是加仓
1、Abk后,在A开仓价位-2N(N类似ATR),sp。
2、AA进场后,求连续N个k线的平均浮盈盈利小于1%,全平。
3、AAbk后,在AA开仓价位-2N(N类似ATR),sp。

第二种情况
A,bk;//头寸
AA,bk;//这是加仓
1、当浮动盈利超过10%以后,平仓一半,剩下的仓位止损设置在平仓价位,浮盈的百分比达到最大后,回撤10%全平。

最后想请问下
1、比如我用了QUARTERTRADE函数,我想季度总亏损必须小于1万。或者连续亏损小于3次。
2、所有开仓操作中,可用资金不能低于初始化资金的50%。
技术人员回复
日期:2020-10-12 8:09
参考:

VARIABLE:X:=0,Y:=0;
A:=ISUP;
AA:=ISUP;
N:=10;
A && BKVOL=0,BK(1);
AA && BKVOL>0 && BARSBK<BARSSP,BK(1);
BKVOL=1 && C<BKPRICE-2*N,SP(1);
BKVOL=2 && BARSBK>3 && MA(PROFIT/INITMONEY,3)<0.01,SP(BKVOL);
BKVOL=2 && C<BKPRICE-2*N,SP(BKVOL);
PROFIT/INITMONEY>0.1,SP(BKVOL/2);
PROFIT/INITMONEY>0 && PROFIT/INITMONEY<HHV(PROFIT/INITMONEY,BARSBK)*0.9,SP(BKVOL);
//用了QUARTERTRADE函数,我想季度总亏损必须小于1万。或者连续亏损小于3次。
CON1:=INITMONEY-MONEYTOT>-10000;
NG:=BARSLAST(QUARTER<>REF(QUARTER,1));
IF BARSSP=1 && LASTOFFSETPROFIT<0 THEN
BEGIN
X:=X+1;
Y:=Y+LASTOFFSETPROFIT;
END
IF (BARSSP=1 && LASTOFFSETPROFIT>=0)||NG=0 THEN
BEGIN
X:=0;
Y:=0;
END
CON21:=X<3;
CON22:=Y>-10000;
//所有开仓操作中,可用资金不能低于初始化资金的50%。
CON3:=MONEY>INITMONEY*0.5;
   
投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26
 谢谢老师,我有疑问:
1、这是我仓位计算
MM:=MONEYTOT;//资金
GM:(0.01*MM)/JDBF;//头寸规模
GM1:MAX(GM,1);//取GM和1的最大值
SS:=ENTRYSIG_VOL(1);//交易第一个开仓信号手数
MGM1:MAX(2*SS,1); //最大头寸(取2*交易第一个开仓信号手数 和 1的最大值)
A,bk(GM1);
AA&&(BKVOL+SS) <=MGM1,bk(ss)我开仓手数是算好的变量。止损止盈能否改用开仓信号次数;比如第一次开仓、第二次开仓来代替这里BKVOL=1 或者BKVOL=2

2、2*N,这个N我需要的是开仓时候那个k线的N值。不能是当前k线的N值。
投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26
 谢谢老师,我有疑问:
1、这是我仓位计算
MM:=MONEYTOT;//资金
GM:(0.01*MM)/JDBF;//头寸规模
GM1:MAX(GM,1);//取GM和1的最大值
SS:=ENTRYSIG_VOL(1);//交易第一个开仓信号手数
MGM1:MAX(2*SS,1); //最大头寸(取2*交易第一个开仓信号手数 和 1的最大值)
A,bk(GM1);
AA&&(BKVOL+SS) <=MGM1,bk(ss)我开仓手数是算好的变量。止损止盈能否改用开仓信号次数;比如第一次开仓、第二次开仓来代替这里BKVOL=1 或者BKVOL=2

2、2*N,这个N我需要的是开仓时候那个k线的N值。不能是当前k线的N值。
技术人员回复
日期:2020-10-12 12:30
参考:

VARIABLE:X:=0,Y:=0;
N:=26;
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,N);
A:=ISUP;
AA:=ISUP;
N1:=REF(ATR,BARSBK);
MM:=MONEYTOT;//资金
JDBF:=(C*MARGIN*UNIT+FEE);
GM:(0.01*MM)/JDBF;//头寸规模
GM1:MAX(GM,1);//取GM和1的最大值
SS:=REFSIG_VOL(BK,1);//交易第一个开仓信号手数
MGM1:MAX(2*SS,1); //最大头寸(取2*交易第一个开仓信号手数 和 1的最大值)
A && COUNTSIG(BK,BARSSP)=0,BK(GM1);
AA && COUNTSIG(BK,BARSSP)=1,BK(SS);
COUNTSIG(BK,BARSSP)=1 && C<BKPRICE-2*N1,SP(BKVOL);
COUNTSIG(BK,BARSSP)=2 && BARSBK>3 && MA(PROFIT/INITMONEY,3)<0.01,SP(BKVOL);
COUNTSIG(BK,BARSSP)=2 && C<BKPRICE-2*N1,SP(BKVOL);
PROFIT/INITMONEY>0.1,SP(BKVOL/2);
PROFIT/INITMONEY>0 && PROFIT/INITMONEY<HHV(PROFIT/INITMONEY,BARSBK)*0.9,SP(BKVOL);
//用了QUARTERTRADE函数,我想季度总亏损必须小于1万。或者连续亏损小于3次。
CON1:=INITMONEY-MONEYTOT>-10000;
NG:=BARSLAST(QUARTER<>REF(QUARTER,1));
IF BARSSP=1 && LASTOFFSETPROFIT<0 THEN
BEGIN
X:=X+1;
Y:=Y+LASTOFFSETPROFIT;
END
IF (BARSSP=1 && LASTOFFSETPROFIT>=0)||NG=0 THEN
BEGIN
X:=0;
Y:=0;
END
CON21:=X<3;
CON22:=Y>-10000;
//所有开仓操作中,可用资金不能低于初始化资金的50%。
CON3:=MONEY>INITMONEY*0.5;
投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26
 不好意思老师~
COUNTSIG(BK,BARSSP)=1 && C<BKPRICE-2*N1,SP(BKVOL);
COUNTSIG(BK,BARSSP)=2 && C<BKPRICE-2*N1,SP(BKVOL);
这句好像不对

图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:001.jpg


图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:002.jpg
判断不到止损,有时候触发、有时候不触发。

PROFIT/INITMONEY>0.1,SP(BKVOL/2);
PROFIT/INITMONEY>0 && PROFIT/INITMONEY<HHV(PROFIT/INITMONEY,BARSBK)*0.9,SP(BKVOL);
这两句应该是第一句先触发,在触发第二句,但是测试中是乱的。而且出现浮盈10%止盈后,剩下的直接拿到换季并且亏损了。都没有触发止损。


投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26


图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:003.jpg

 
技术人员回复
日期:2020-10-13 7:58
再看下效果:

VARIABLE:X:=0,Y:=0;
//用了QUARTERTRADE函数,我想季度总亏损必须小于1万。或者连续亏损小于3次。
CON1:=INITMONEY-MONEYTOT>-10000;
NG:=BARSLAST(QUARTER<>REF(QUARTER,1));
IF BARSSP=1 && LASTOFFSETPROFIT<0 THEN
BEGIN
X:=X+1;
Y:=Y+LASTOFFSETPROFIT;
END
IF (BARSSP=1 && LASTOFFSETPROFIT>=0)||NG=0 THEN
BEGIN
X:=0;
Y:=0;
END
CON21:=X<3;
CON22:=Y>-10000;
//所有开仓操作中,可用资金不能低于初始化资金的50%。
CON3:=MONEY>INITMONEY*0.5;
XXX:=CON21&&CON22&&CON3;
//--------------------------------
N:=26;
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,N);
A:=ISUP;
AA:=ISUP;
N1:=REF(ATR,BARSBK);
MM:=MONEYTOT;//资金
JDBF:=(C*MARGIN*UNIT+FEE);
GM:(0.01*MM)/JDBF;//头寸规模
GM1:MAX(GM,1);//取GM和1的最大值
SS:=REFSIG_VOL(BK,1);//交易第一个开仓信号手数
MGM1:MAX(2*SS,1); //最大头寸(取2*交易第一个开仓信号手数 和 1的最大值)
A && BKVOL=0 &&XXX,BK(GM1);
AA && BKVOL>0 && COUNTSIG(BK,BARPOS)=1 && COUNTSIG(SP,BARPOS)=0,BK(SS);
AA && BKVOL>0 && COUNTSIG(SP,BARPOS)>0&&XXX,BK(SS);
BKPRICE-2*N1;
BKVOL>0 && C<BKPRICE-2*N1,SP(BKVOL);
(COUNTSIG(BK,BARSSP)=2||COUNTSIG(BK,BARPOS)=2 && COUNTSIG(SP,BARPOS)=0) && BARSBK>3 && MA(PROFIT/INITMONEY,3)<0.01,SP(BKVOL);
PROFIT/INITMONEY>0.1,SP(BKVOL/2);
PROFIT/INITMONEY>0 && PROFIT/INITMONEY<HHV(PROFIT/INITMONEY,BARSBK)*0.9 && EXIST(PROFIT/INITMONEY>0.1,BARSBK),SP(BKVOL);
投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26
 老师,还要请教下
1、如图001,PROFIT/INITMONEY>0.1,SP(BKVOL/2);触发了。但是浮盈创新高回撤没有离场。
2、如图002,AA价位的止损有问题。几乎每次都是紧贴开仓价格平仓的。甚至会盈利。比如第二次bk开仓价是499元,但是如果按照2N(假设值为5的话),止损应该在494离场才对。


图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:001.jpg

投资者咨询:关于止盈止损 (文华财经)
来源:文华财经  日期:2020-10-11 22:26
 

图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 文件名:002.jpg