以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  计算上一次交易是盈利还是亏损的,如何编写??  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=173509)

--  作者:Damoclus
--  发布时间:2019/12/12 10:17:49
--  计算上一次交易是盈利还是亏损的,如何编写??
计算上一次交易是盈利还是亏损的,如何编写??
--  作者:yukizzc
--  发布时间:2019/12/12 10:53:36
--  
得到指定交易的盈亏数额,平仓一次算一次交易,开仓不算。

用法:NUMPROFIT(N),取第距离现在第N次交易的盈亏数额。

例如:NUMPROFIT(1)表示最近一次的盈亏数额。

--  作者:Damoclus
--  发布时间:2019/12/12 13:02:30
--  
了解。谢谢帮助!
--  作者:Damoclus
--  发布时间:2019/12/13 10:58:38
--  
有个问题??,numprofit(1)表示的是最近一次的交易,而图表实盘交易如果平仓和开仓同时,那么numprofit(1)则是上一次交易的盈亏情况,而不是最近一次,不符。

代码
if cond1  then begin
      sellshort(1,holding,limitr,c+pd);
      tn:=if(numprofit(1)>0,1,2);
      buy(holding=0 and cond2,tn,limitr,c+pd);
end 

--  作者:FireScript
--  发布时间:2019/12/13 11:18:01
--  
 平仓一次算一次,这个不是浮动盈亏。你上面代码开平都满足时候,取的就是平仓的那个盈亏。你持仓的盈亏需要你另外算。
--  作者:Damoclus
--  发布时间:2019/12/13 15:15:41
--  
上述代码平仓后,如果盈亏大于0则tn取1,否则tn取2,从交易日志中发现平仓下单,这一笔交易盈亏是大于0,下一笔交易开仓tn应该取1,可实际下一笔交易开仓为2。

if cond1  then begin
      sellshort(1,holding,limitr,c+pd);
end 
if cond1 then begin
      tn:=if(numprofit(1)>0,1,2);
      buy(holding=0 and cond2,tn,limitr,c+pd);
end 
试了下,这样就不会了。

--  作者:Damoclus
--  发布时间:2019/12/13 16:13:59
--  
持仓盈亏计算有后台函数
询问图表有相应的函数吗???

--  作者:FireScript
--  发布时间:2019/12/13 16:17:15
--  
 有的


OPENPROFIT  图表
TOPENPROFIT 后台
TACCOUNT( 4)  后台可用

--  作者:Damoclus
--  发布时间:2019/12/13 16:21:51
--  
好的,谢谢!!!