套的例子看过了,求教如何一起计算两个合约的总盈利情况,想根据2个合约的情况做止盈。
还有,就是如何做一个全局变量,记录连续止损的次数,止损反手的手数会根据次数改变,例如每次加一手。这个要怎么写?
止盈止损可以单独计算的。后台里面 持仓数量,持仓均价都可以取到的。分品种获取了之后直接算盈亏就行了。需要用到下面几个函数:
TBUYHOLDINGEX()
TSELLHOLDINGEX()
TAVGENTERPRICEEX2()
比如:
dyk1:dynainfo2(7,套利品种1)-TAVGENTERPRICEEX2('',套利品种1,0);//多盈亏
kyk1:TAVGENTERPRICEEX2('',套利品种2,1)-dynainfo2(7,套利品种2);//空盈亏
你自行把品种1的空,品种2的多再写下就行了.
可以这样子。
GLOBALVARIABLE:ct:=1;//默认从1开始
if 止盈条件 then
begin
//平仓语句
ct:=1;//连续止损中断的地方,务必重置全局变量CT。这里是止盈的地方重置了,你如果还有其他地方要终止连续止损的统计,同样也要重置这个全局变量
end
if 止损条件 then
begin
//平仓语句
ct:=ct+1;//止损的地方累计这个全局变量的值
//在反手的语句里,可以直接用ct作为反手下单的手数
TBUYSHORT(1,ct,MKT ,0,0,账户,套利品种1);
TBUY(1,ct,MKT ,0,0,账户,套利品种2);
end
这个那没法回溯是吧???感觉一般的程序不太一样,那怎么记录反手的次数,因为每次开仓的手数和止损不一样,。
是的。没法回溯的。你这里没有必要回溯之前的值的吧?
记录次数这种,都是采用上面的方式的。定义全局变量,然后在反手的代码里面,累加 或者在需要重置的地方重置。都是一样的思路的。你为什么还要记录反手的次数呢。
其实套利最好还是用价差的方式来做处理。没有别的,就是让整个逻辑上会更简单点,代码也少点。