以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [讨论]同样的策略在后台多账号交易时要根据账号个数写多个公式?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=4608)

--  作者:z7c9
--  发布时间:2010/12/28 11:48:18
--  [讨论]同样的策略在后台多账号交易时要根据账号个数写多个公式?

账号666666的策略:

以下内容为程序代码:

1 begintime:=currenttime>=091500 and currenttime<=145500;
2 endtime:=currenttime>=145930;
3
4 buycond:=begintime;
5 sellcond:=begintime;
6
7 if tbuyholdingex(\'666666\',0,0)=0 then begin
8     if buycond then begin
9         buyprice:=close;
10         mycash:=taccount2(19,\'666666\');
11         lots:=intpart(mycash/(buyprice*multiplier*taccount(41)));
12         tbuy(1,lots,lmt,close,0,\'666666\',0);
13     end
14 end
15
16 if tsellholdingex(\'666666\',0,0)=0 then begin
17     if sellcond then begin
18         sellprice:=close;
19         mycash:=taccount2(19,\'666666\');
20         lots:=intpart(mycash/(sellprice*multiplier*taccount(42)));
21         tbuyshort(1,lots,lmt,close,0,\'666666\',0);
22     end
23 end
24
25 if tbuyholdingex(\'666666\',0,0)>0 then begin
26     if endtime then
27         tsell(1,tbuyholdingex(\'666666\',0,0),lmt,close,\'666666\',0);
28 end
29
30 if tsellholdingex(\'666666\',0,0)<0 then begin
31     if endtime then
32         tsellshort(1,tsellholdingex(\'666666\',0,0),lmt,close,\'666666\',0);
33 end

 

账号888888的策略:

以下内容为程序代码:

1 begintime:=currenttime>=091500 and currenttime<=145500;
2 endtime:=currenttime>=145930;
3
4 buycond:=begintime;
5 sellcond:=begintime;
6
7 if tbuyholdingex(\'888888\',0,0)=0 then begin
8     if buycond then begin
9         buyprice:=close;
10         mycash:=taccount2(19,\'888888\');
11         lots:=intpart(mycash/(buyprice*multiplier*taccount(41)));
12         tbuy(1,lots,lmt,close,0,\'888888\',0);
13     end
14 end
15
16 if tsellholdingex(\'888888\',0,0)=0 then begin
17     if sellcond then begin
18         sellprice:=close;
19         mycash:=taccount2(19,\'888888\');
20         lots:=intpart(mycash/(sellprice*multiplier*taccount(42)));
21         tbuyshort(1,lots,lmt,close,0,\'888888\',0);
22     end
23 end
24
25 if tbuyholdingex(\'888888\',0,0)>0 then begin
26     if endtime then
27         tsell(1,tbuyholdingex(\'888888\',0,0),lmt,close,\'888888\',0);
28 end
29
30 if tsellholdingex(\'888888\',0,0)<0 then begin
31     if endtime then
32         tsellshort(1,tsellholdingex(\'888888\',0,0),lmt,close,\'888888\',0);
33 end

 

 

仅仅因为账号不同就需要写多个公式?这个不太合理吧。

[此贴子已经被作者于2010-12-28 12:09:48编辑过]

--  作者:董小球
--  发布时间:2010/12/28 14:06:14
--  

也可以用 条件2 or 条件2 then的形式嘛

你认为怎样最好?


--  作者:z7c9
--  发布时间:2010/12/28 17:30:18
--  
以下是引用董小球在2010-12-28 14:06:14的发言:

也可以用 条件2 or 条件2 then的形式嘛

你认为怎样最好?

那还是1个策略不是2个策略吧,总不能把所有的策略写在一个公式中吧。

 

总不能有多少个账号,就copy多少份代码吧?

 

就像一个策略可以应用在多个品种上,一个策略应该也可以应用在多个账号上才对。

[此贴子已经被作者于2010-12-28 17:32:22编辑过]