以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 后台分批止盈的代码如何编写? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=68109) |
-- 作者:ivan -- 发布时间:2014/7/30 15:37:30 -- 后台分批止盈的代码如何编写? 比如,后台10个策略,先后开了10手空单,如何在均价盈利4跳后,开始每多盈利1跳按照1,2,3,4手止盈, 也就是说: 盈利4跳平仓1手; 盈利5跳平仓2手; 盈利6跳平仓3手; 盈利7跳平仓4手; 能读取实际账户的浮盈和手数来计算嘛? 谢谢!
|
-- 作者:jinzhe -- 发布时间:2014/7/30 15:45:44 -- if TAVGENTERPRICE-dynainfo(7)=5*mindiff then tsellshort(1,1,mkt); if TAVGENTERPRICE-dynainfo(7)=6*mindiff then tsellshort(1,2,mkt); if TAVGENTERPRICE-dynainfo(7)=7*mindiff then tsellshort(1,3,mkt); if TAVGENTERPRICE-dynainfo(7)=8*mindiff then tsellshort(1,4,mkt);
这样行不,判断当前盈利多少点之后做对应的平仓 |
-- 作者:Ivan -- 发布时间:2014/7/30 15:53:20 -- 以下是引用jinzhe在2014/7/30 15:45:44的发言:
if TAVGENTERPRICE-dynainfo(7)=5*mindiff then tsellshort(1,1,mkt); if TAVGENTERPRICE-dynainfo(7)=6*mindiff then tsellshort(1,2,mkt); if TAVGENTERPRICE-dynainfo(7)=7*mindiff then tsellshort(1,3,mkt); if TAVGENTERPRICE-dynainfo(7)=8*mindiff then tsellshort(1,4,mkt);
这样行不,判断当前盈利多少点之后做对应的平仓 谢谢! 加减仓后,这个tavgenterprice,好像价格计算有误? |
-- 作者:Ivan -- 发布时间:2014/7/30 15:57:46 -- 另外,假如还没开满10手,如4手,也要上面的分批止盈操作,该如何修改? 还有,行情跳空的话,上述代码就部分不会平仓了,比如跳空到盈利6跳,前面的5跳盈利就不执行了,怎么处理呢? |
-- 作者:jinzhe -- 发布时间:2014/7/30 16:02:58 -- 单子是计算均价的,平掉对应手数均价不变的 |
-- 作者:jinzhe -- 发布时间:2014/7/30 16:04:37 -- 没开满那么你要分批,那么这个分批是什么情形和效果? |
-- 作者:Ivan -- 发布时间:2014/7/30 16:57:06 -- 以下是引用jinzhe在2014/7/30 16:04:37的发言:
没开满那么你要分批,那么这个分批是什么情形和效果? 规则一样的: 盈利4跳平仓1手; 盈利5跳平仓2手; 盈利6跳平仓3手; 盈利7跳平仓4手; 还有,行情跳空的话,上述代码就部分不会平仓了,比如跳空到盈利6跳,前面的5跳盈利就不执行了,怎么处理呢?
|
-- 作者:jinzhe -- 发布时间:2014/7/30 17:02:07 -- 你这一共是10手,开了4手要怎么分? |
-- 作者:Ivan -- 发布时间:2014/7/30 17:03:58 -- 盈利4跳平仓1手; 盈利5跳平仓2手; 盈利6跳平仓1手; |
-- 作者:jinzhe -- 发布时间:2014/7/31 9:03:40 -- if TAVGENTERPRICE-dynainfo(7)=4*mindiff then tsellshort(1,1,mkt); if TAVGENTERPRICE-dynainfo(7)=5*mindiff then tsellshort(1,min(2,tsellholding(0)),mkt); if TAVGENTERPRICE-dynainfo(7)=6*mindiff then tsellshort(1,min(3,tsellholding(0)),mkt); if TAVGENTERPRICE-dynainfo(7)=7*mindiff then tsellshort(1,min(4,tsellholding(0)),mkt); |