以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助][讨论]依照步进加仓如何写,三进三出为何一个开?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=52017)

--  作者:netfox
--  发布时间:2013/5/14 21:00:11
--  [求助][讨论]依照步进加仓如何写,三进三出为何一个开?
具体如此, 先求均线交叉,开1张,然后依照每次ATR移动开一张,直到开满4张结束
ATR:=SMA(TR,20,1);
mashort:ema(close,short);
malong:ema(close,long);
if CROSS(mashort,malong) then begin
{平空}sellshort(holding<0,0,MARKET);
{开多}buy(holding=0,KD,MARKET);
开多2:buy(ENTERPRICE+ATR,KD,MARKET);
开多3:buy(ENTERPRICE+ATR,KD,MARKET);
开多4:buy(ENTERPRICE+ATR,KD,MARKET);
end;

三进三出那个不就是在条件下连续写呢?
  实际测试是怎么都开在一条线上?
KD控制是开多少单子,KD默认=1

--  作者:jinzhe
--  发布时间:2013/5/15 9:16:32
--  
后面的开多234在开仓条件里面加个enterbars>0
--  作者:netfox
--  发布时间:2013/5/15 9:46:51
--  
写成这样 

 if CROSS(mashort,malong) then begin
{平空}sellshort(holding<0,0,MARKET);
{开多}buy(holding=0,KD,MARKET);
end;

if enterbars>0 then BEGIN
  开多2:buy(ENTERPRICE+ATR,KD,MARKET);
  end;

就成每个K线都成交了

--  作者:jinzhe
--  发布时间:2013/5/15 10:03:31
--  
图表交易一根k线只能做一次开多,所以一根k线做不了4次开多,所以改成了一根k线开一次,一共开4此的
--  作者:netfox
--  发布时间:2013/5/15 11:39:28
--  
那也就开4次啊,可可。。。。图表上直接开成8次了 

这这,要怎么写才能控制住啊

--  作者:jinzhe
--  发布时间:2013/5/15 13:28:59
--  
这样写只会开4次,开8次不是代码原因,
--  作者:netfox
--  发布时间:2013/5/15 20:20:31
--  
可问题就是连续开多,一直开上去,不然之多4张啊,这何止4张了。

  以上 FG09 合约

图片点击可在新窗口打开查看此主题相关图片如下:玻璃09.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2013-5-15 20:22:09编辑过]

--  作者:netfox
--  发布时间:2013/5/15 20:45:01
--  
if holding=1 then BEGIN
  开多2:buy(ENTERPRICE+ATR,KD,MARKET);
  end;
  
if holding=2 then BEGIN
  开多3:buy(ENTERPRICE+ATR,KD,MARKET);
  end;

if holding=3 then BEGIN
  开多4:buy(ENTERPRICE+ATR,KD,MARKET);
  end;
  
 持仓量:holding,NODRAW;

依照上面写法。。。就一次开在1个位置4单子。

if enterbars=1 then BEGIN
  开多2:buy(ENTERPRICE+ATR,KD,MARKET);
  end;

if enterbars=2 then BEGIN
  开多3:buy(ENTERPRICE+ATR,KD,MARKET);
  end;

if enterbars=2 then BEGIN
  开多2:buy(ENTERPRICE+ATR,KD,MARKET);
  end;


if enterbars=3 then BEGIN
  开多2:buy(ENTERPRICE+ATR,KD,MARKET);
  end;

if enterbars=3 then BEGIN
  开多4:buy(ENTERPRICE+ATR,KD,MARKET);
  end;

写4次就成每个位置开4次了

--  作者:netfox
--  发布时间:2013/5/15 21:28:01
--  
图片点击可在新窗口打开查看 总算ok 。。 原来 enterbars 也一起用就成了