Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:此种手数情况如何编写?

1楼
jjjfk 发表于:2017/4/5 9:15:46

如下图:


此主题相关图片如下:图片1.jpg
按此在新窗口浏览图片


请问该如何编写,才能使每次建仓的手数相同?


2楼
yukizzc 发表于:2017/4/5 9:20:40

buy(1,1,marketr)

这样就是1手

3楼
jjjfk 发表于:2017/4/5 10:18:21
不是这样。我第一次建仓的手数是通过资金的2%/ATR倍数得出来的,比如算出来手数是a1,我可以做到让第二次建仓的手数也是a1,即ref(a1,enterbars); ,但是第二次开仓之后的手数却不是固定为a1,而是变化的。我想把我随后所有的加仓的手数都固定为第一次开仓的手数,就像上图那样,该如何编写?
4楼
wenarm 发表于:2017/4/5 10:31:59

你这种算法处理,每次开仓是时都会根据当前的资金去计算手数、

你如果只想在第一次计算时计算手数,后面统一按这个数量开仓,用全局变量标记计算

VARIABLE:flag=0;

 

if flag= 0 then  begin

  2%/ATR;

  flag:= 1;

end

5楼
jjjfk 发表于:2017/4/5 13:30:45
我知道以下这样写应该是错的,按照你的意思,应该怎样写呢?

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
6楼
yukizzc 发表于:2017/4/5 13:33:39

if holding=0 and cond then

begin

n:=你计算出的手术;

buy();

end

 

用n记录第一次空仓开仓的数量就可以了

7楼
jjjfk 发表于:2017/4/5 15:04:49
真的可以了,谢谢!
8楼
jjjfk 发表于:2017/4/5 15:21:10
再请问一下,如何编写 “保证金占用不超过总资金的50%”?
9楼
qq代人发帖 发表于:2017/4/5 15:23:20

保证金占用:TACCOUNT(28)

总资金:tasset

10楼
jjjfk 发表于:2017/4/5 15:35:31
好的,谢谢
共10 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.04688 s, 3 queries.