Rss & SiteMap

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

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

标题:[求助]请高手帮忙看看是有逻辑错误还是函数或语句使用有问题?

1楼
leowyn 发表于:2010/10/11 16:40:44

仅图表显示用不涉及头寸管理:

 

省略N行

 

///////////////////////////////////////////////////////////////////////////////////////////////////////

 IF HOLDING=0 THEN
 BEGIN
     //多头开仓,"开多"囊括了所有开多条件.只要在可开多区且,满足任意一个就开仓.

     IF 交易时间 AND 开多 AND 大胆做多区 THEN
     BEGIN
      //为便于相互调用,条件语句多数未设定区间限制,故此处还是有限制的必要.
         BUY(1,P,LIMITR,CLOSE);
            PLAYSOUND(交易时间 AND 开多 AND 大胆做多区,'D:\Weisoft Stock\sound\BK.wav');
        END
   
     //空头开仓,"开空"囊括所有开空条件...............

      IF 交易时间 AND 开空 AND NOT(大多相强区) and not(红区) and not(红补) and not(趋势纯红) and 开空必要条件 THEN
      BEGIN
         BUYSHORT(1,P,LIMITR,CLOSE); 
         PLAYSOUND(交易时间 AND 开空 AND NOT(超级强势区) AND NOT(大多相强区),'D:\Weisoft Stock\sound\SK.wav');
        END
 END

 ///////////////////////////////////////////////////////////////////////////////////////////////
 
IF HOLDING>0 THEN BEGIN
     //多头平仓. "A平多"代表满足平多的任一条件.当有平多单条件满足时,需要先判断当前点位所处区间,并判断出"开多单时"的点位所处区间(大区)及开多性质(大中小波),开仓点位不同,平仓条件不同.
   IF ENTERBARS>1 AND A平多 THEN
   BEGIN

 

       if 大波开多 or 纯超强区 then
       begin  

               IF 平多1 THEN
                    SELL(1,HOLDING,MARKET,CLOSE);
                    PLAYSOUND(平多1,'D:\Weisoft Stock\sound\SP.wav');
                    GOTO QUITLINE;
       end  
   
   
        if 大波开多 and 混超强区 then
        begin  //细化平多仓.混超区开的大波多单,平仓条件相对纯超区宽松
                IF 平多2  THEN    //只要是大波开仓就不能用普平多条件.否则太快平错失太多机会.
                    SELL(1,HOLDING,MARKET,CLOSE);
                    PLAYSOUND(平多2,'D:\Weisoft Stock\sound\SP.wav');
                    GOTO QUITLINE;
        end  
   
        if not(大波开多) AND NOT(纯超强区) then
        begin 
                 IF 平多 OR 平多1 OR 平多2  or 平多3 THEN
                      SELL(1,HOLDING,MARKET,CLOSE);
                      PLAYSOUND(平多 OR 平多1 OR 平多2 or 平多3,'D:\Weisoft Stock\sound\SP.wav');
         GOTO QUITLINE;
         end
  END
 
     //多头收盘平仓
 QUITLINE@ IF NOT(交易时间) THEN
     BEGIN
            SELL(1,HOLDING,LIMITR,CLOSE);
            PLAYSOUND(NOT(交易时间),'D:\Weisoft Stock\sound\SP.wav');            
      END
 END

 {
 通过GOTO无条件跳转保证不会重复开平仓.问题似乎解决了. 

 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////

 

平空代码省略.

 

现在的问题是.无法准确定位开平仓点.总是乱的.不知道那里的错误

还请高手指导一下.是不是条件控制和判断语句逻辑错误还是那里的问题.

我刚学金字塔编程,请多帮忙.

[此贴子已经被作者于2010-10-11 16:41:37编辑过]
2楼
圆周工作室 发表于:2010/10/11 18:12:08

你这个代码只是片段

 

另外,你现在的逻辑是有问题的

 

请把所有if下的逻辑内容 用 begin  end 包括起来

 

现在漏洞十分明显,报警肯定跟信号不一致

3楼
leowyn 发表于:2010/10/11 21:08:36
多谢!!
共3 条记录, 每页显示 10 条, 页签: [1]


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