不是这样。我第一次建仓的手数是通过资金的2%/ATR倍数得出来的,比如算出来手数是a1,我可以做到让第二次建仓的手数也是a1,即ref(a1,enterbars); ,但是第二次开仓之后的手数却不是固定为a1,而是变化的。我想把我随后所有的加仓的手数都固定为第一次开仓的手数,就像上图那样,该如何编写?
你这种算法处理,每次开仓是时都会根据当前的资金去计算手数、
你如果只想在第一次计算时计算手数,后面统一按这个数量开仓,用全局变量标记计算
VARIABLE:flag=0;
if flag= 0 then begin
2%/ATR;
flag:= 1;
end
我知道以下这样写应该是错的,按照你的意思,应该怎样写呢?
a1:0.01*valuewhen(barpos=1,asset); //初始资金的1%
a2:floor(a1/(2*atr)); //开仓手数
//第一次建仓
if cond1
then begin
buy(1,a2,marketr);
//第n次建仓
b1:ref(a2,enterbars);
variable:n=0; flag=0;
if cond2
then begin
buy(1,b1,marketr);
n:=n+1;
flag:=1;
end
if holding=0 and cond then
begin
n:=你计算出的手术;
buy();
end
用n记录第一次空仓开仓的数量就可以了
再请问一下,如何编写 “保证金占用不超过总资金的50%”?