以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何使交易连线的颜色和每笔交易的盈亏对应?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=1768)

--  作者:devcon
--  发布时间:2010/6/5 18:36:17
--  如何使交易连线的颜色和每笔交易的盈亏对应?

在轮回版主的例程里,有交易连线的写法:

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);

 

都无法达到目的。

写法一的效果仍然是多头交易画红线,空头交易画绿线,写法二的效果看不出规律。

烦请版主点评一下或给个思路?

多谢!

[此贴子已经被作者于2010-6-5 18:41:32编辑过]

--  作者:admin
--  发布时间:2010/6/5 19:35:58
--  
你可以考虑使用BUY,SELL等新交易系统指令,然后使用OPENPROFIT函数做,看看效果如何
--  作者:devcon
--  发布时间:2010/6/5 22:47:34
--  

已经使用了buy/sell指令,用openprofit在部分交易上连线颜色符合要求,但不是全部,原因应该是在历史bar上,浮动盈亏应该是用close计算的,实际交易的价格是盘中的某个价格,所以,在某个历史bar上,可能按close计算的浮盈>0,画了红线,但按出场的价位计算是亏的,应该是绿线。

颜色参数用了条件判断,以空头交易为例,在平空的bar上进行判断:IF(Ref(MyPrice,BarsLast(SellCon))>MyPrice,ColorRed,ColorGreen),逻辑上应该没问题,如果开空价高于平空价,就是盈利交易(暂不考虑佣金开销),线色用红色,否则用绿色。但是就是达不到效果,不知道是不是DrawLine语句的颜色参数不能用IF条件判断?


--  作者:admin
--  发布时间:2010/6/5 23:08:21
--  

那你试试使用ENTERPRICE,在本地平仓信号出现后,比较平仓价格,然后画线