我正在学习写顾问... - 页 2

 
Figar0 >> :

...对于非程序员的新手来说,可能会有不同的结果...

))这对我来说是个大词!我从事外汇工作只有2.5年...在这段时间里,我赚了2次:第一次是在模拟账户上(我把存款增加了50倍),第二次是在真实账户上(结果是比较温和的)。

我只做了一个结论:没有纪律!我决定尝试写一些不取决于我的情绪的东西)。

 
rid >> :

为了帮助你更快地思考,请先将你的专家通过所有的TICS和这里的结果运行。

反正测试通过了所有的虱子!你可以在图片中看到它...

 

我似乎在这段代码中弄错了什么......

void ClosePos()
   {
      double pp;

        if (OrderType()==OP_BUY)
          {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
          }
        if (OrderType()==OP_SELL)
          {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
          }
   }


我在日志中一直得到一个错误...

OrderClose 函数的无效票据
OrderClose错误4051
OrderSend错误130

这个检查关闭在相反的输入信号之前进行...

如果有一个买入信号

(OrderType()==OP_BUY)
关闭当前卖出

OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue)

反之亦然...

但整个日志都填上了一个错误...

看起来它试图在每一个刻度上关闭......但没有任何条件......



 
OrderSelect 在哪里?
 
我不知道)这就是我在这里的原因......要把它弄好......。
 
sergeev >> :
OrderSelect 在哪里?

阅读这个函数......转换为这个变体。

void ClosePos()
   {
      double pp;
        if (OrderSelect(0, SELECT_BY_POS)==true) // Если есть открытый ордер
            { 
               if (OrderType()==OP_BUY)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_BID);
                  OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
                  }
               if (OrderType()==OP_SELL)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_ASK);
                  OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
                  }
            }      
   }
 

如果不是因为建模的质量,我也会喜欢它。

 
它取决于什么?
 

搜索它,你需要下载并重新计算历史数据。

 
ALex2008 писал(а)>>
它取决于什么?

下载分钟蜡烛(例如来自Alpari)并在分钟蜡烛上进行测试。

你不能在4小时烛台上测试5个点的止损。