percenttrailing止盈语句代码如下:
[IntrabarOrderGeneration=true];
input:target(10),Percent(30);//,BS(NumericSimple);
vars:intrabarpersist mp(0),intrabarpersist flagB(0),intrabarpersist flagS(0), intrabarpersist valueh(0),intrabarpersist valuel(999999);
once cleardebug;
mp=marketposition;
if mp<>mp[1] then
begin
valueh=0;
valuel=999999;
flagb=0;
flags=0;
end;
if mp>0 and valueh<=h then
valueh=h;
if mp<0 and valuel>=l then
valuel=l;
if (mp>0 and valueh-entryprice>target) then
flagB=1;
if mp<0 and entryprice-valuel>target then
flags=1;
if mp=1 and flagB=1 then
sell("L_trailing") next bar at valueh-Percent*(valueh-entryprice)/100 stop;
if mp=-1 and flagS=1 then
buytocover("S_trailing") next bar at valuel+percent*(entryprice-valuel)/100 stop;
我在实际使用时遇到了一个情况:市场价格变动太快,导致止盈指令发出后没有成交。
我的诉求是用at market的方式下单,请问老师应该如何改动上述语句才能达到目的,谢谢!
(来自旧论坛客户,spacehk)
@evenrich
非bar内模式,非精细资料历史回测没有问题!
但是这段代码在非bar内模式下有一个小问题:因为非bar内模式下,策略的计算是每根bar收盘时进行的,并且判断委托单执行条件是否满足,而这段代码中是需要判断多头开仓以来的最高价与进场价之差是否大于目标价格(以多头为例),然后再委托追踪止损单,但是对“多头开仓以来的最高价与进场价之差是否大于目标价格”不会太及时,因为这个条件可能在bar的形成过程中就满足了,导致判断延迟。
当然可以的,帖子”MC回测逻辑及条件单(包括set关键字)的执行逻辑“中有详细介绍哦
当然可以的,帖子”MC回测逻辑及条件单(包括set关键字)的执行逻辑“中有详细介绍哦