在轮回版主的例程里,有交易连线的写法:
DRAWLINE(ENTERLONG,OPEN,EXITLONG,OPEN,0,COLORRED,LINETHICK3,VTSOLID);
DRAWLINE(ENTERSHORT,OPEN,EXITSHORT,OPEN,0,COLORGREEN,LINETHICK3,VTSOLID);
实现的效果是,开多到平多画红线,开空到平空画绿线。
想把效果改为:无论开多或开空,该笔交易盈利则画红线,亏损就画绿线。试了两种写法:
一
DrawLine(BuyCon,MyPrice,SellCon,MyPrice,0,IF(Ref(MyPrice,BarsLast(BuyCon))<MyPrice,ColorRed,ColorGreen),LineThick1,VTSolid);
DrawLine(SellCon,MyPrice,BuyCon,MyPrice,0,IF(Ref(MyPrice,BarsLast(SellCon))>MyPrice,ColorRed,ColorGreen),LineThick1,VTSolid);
二
DrawLine(BuyCon,MyPrice,SellCon,MyPrice,0,IF(NumWinTrade>Ref(NumWinTrade,1),ColorRed,ColorGreen),LineThick1,VTSolid);
DrawLine(SellCon,MyPrice,BuyCon,MyPrice,0,IF(NumWinTrade>Ref(NumWinTrade,1),ColorRed,ColorGreen),LineThick1,VTSolid);
都无法达到目的。
写法一的效果仍然是多头交易画红线,空头交易画绿线,写法二的效果看不出规律。
烦请版主点评一下或给个思路?
多谢!
已经使用了buy/sell指令,用openprofit在部分交易上连线颜色符合要求,但不是全部,原因应该是在历史bar上,浮动盈亏应该是用close计算的,实际交易的价格是盘中的某个价格,所以,在某个历史bar上,可能按close计算的浮盈>0,画了红线,但按出场的价位计算是亏的,应该是绿线。
颜色参数用了条件判断,以空头交易为例,在平空的bar上进行判断:IF(Ref(MyPrice,BarsLast(SellCon))>MyPrice,ColorRed,ColorGreen),逻辑上应该没问题,如果开空价高于平空价,就是盈利交易(暂不考虑佣金开销),线色用红色,否则用绿色。但是就是达不到效果,不知道是不是DrawLine语句的颜色参数不能用IF条件判断?
那你试试使用ENTERPRICE,在本地平仓信号出现后,比较平仓价格,然后画线