智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)为论坛做贡献有奖学金,奖学金可直接换真钱
扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得苏城码APP 
查看: 1228|回复: 1

请教下,这个程序,在做历史回测时为什么不能开单啊,谁能帮我解答下,谢谢

[复制链接]
发表于 2016-3-27 23:42:33 | 显示全部楼层 |阅读模式
int start()
  {
   
   int total=OrdersTotal();
   double ma120=iMA(NULL,0,120,8,MODE_SMMA,PRICE_TYPICAL,0);
   double ma200=iMA(NULL,0,200,8,MODE_SMMA,PRICE_TYPICAL,0);
   
   if(ma120>ma200)
      {
       for(int i=0;i<OrdersTotal();i++)
         {
          if(total>=1)
            {
             if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
               {
                if(check_type()==0)
                  {
                   printf("多单继续持有");
                  }
                if(check_type()==1)
                  {
                   close_sell();
                  }
               }
            }
           else
            {
             buy();
            }
         }
      }
     return(0);
  
  
  
   if(ma120<ma200)
      {
       for(int i=1;i<OrdersTotal();i++)
         {
          if(total>=1)
            {
             if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
               {
                if(check_type()==1)
                  {
                   printf("空单继续持有");
                  }
                if(check_type()==0)
                  {
                   close_buy();
                  }
               }
            }
           else
            {
             sell();
            }
         }
      }
     return(0);
      
      
      
      
  }      
//+------------------------------------------------------------------+
void buy()//自定义 开多单的函数。直接调用 buy(); 即可。
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,"ka",19890,0,Red);//开立多单
}

void sell()//自定义 开多单的函数。
{
OrderSend(Symbol(),OP_SELL,0.1,Bid,10,0,0,"ka",19890,0,Red);//开立空单
}
//+------------------------------------------------------------------+
//自建一个检查 仓库是订单type的程序。返回0表示BUY 返回1表示SELL

int check_type()//定义成int整数型的函数,来查仓库订单TYPE。 使用的时候直接调用 check_type(); 这样就能返回0或1  就是整型数的返回的。

{   int last_type;
    if(OrdersTotal()>0)//如果仓库单大于0 就表示有单了。
      {
         for(int i=1;i<OrdersTotal();i++)//循环搜索订单
           {
             if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))//如果找到了 就选择中它。
               {
                  if(OrderSymbol()==Symbol())//核对一下。是不是对应窗口的货币对。
                    {

                         if(OrderType()==OP_BUY)
                              {
                               last_type=0; //0表示是OP_BUY
                              }
                             
                         if(OrderType()==OP_SELL)
                              {
                               last_type=1; //1表示是OP_SELL
                              }
                     
                    }
                }
           }
      }
   return(last_type);//返回type 如果查到BUY就返回0  查到SELL就返回1了
}

void close_sell()//检查仓库。遇到sell单就平掉的 子程序
{
   for(int i=1;i<OrdersTotal();i++)
    {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)//如果找到了 就选择中它。
          {
             if(OrderType()==OP_SELL)//找到订单后,如果是SELL
               {
               
                 if(OrderSymbol()==Symbol())//核对一下。是不是对应窗口的货币对。
                     {
                        OrderClose(OrderTicket(),OrderLots(),Ask,300);
                     }
               
               }
            
          }
     }
}//close_sell()子程序结束

void close_buy()//检查仓库。遇到buy单就平掉的 子程序
{
   for(int i=1;i<OrdersTotal();i++)
    {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)//如果找到了 就选择中它。
          {
             if(OrderType()==OP_BUY)//找到订单后,如果是BUY
               {
               
                 if(OrderSymbol()==Symbol())//核对一下。是不是对应窗口的货币对。
                     {
                        OrderClose(OrderTicket(),OrderLots(),Bid,300);
                     }
               
               }
            
          }
     }
}//close_sell()子程序结束

回复

使用道具 举报

 楼主| 发表于 2016-3-29 10:29:40 | 显示全部楼层
就没有一个人能我解答下吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap| 智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号,苏州智德金网络科技股份有限公司版权所有 )

GMT+8, 2020-6-3 02:37 , Processed in 0.088447 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表