用于MT5的全功能机器人 - 页 5

 

早晨好!

测试员不想开仓,会产生一个错误

误入歧途。

4756

发送交易请求失败

Rbtg_NYCInclude tester

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我认为这里应该纠正一些东西

Rbtg_NYCInclude kod

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

现在我将尝试用这个函数取代这个函数

//+------------------------------------------------------------------+
//| Check for long position opening                                  |
//+------------------------------------------------------------------+
bool CSampleExpert::LongOpened(void)
  {
   bool res=false;
//--- check for long position (BUY) possibility

           {
            double price=m_symbol.Ask();
            double tp   =m_symbol.Bid()+m_take_profit;
            //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,InpLots,price)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
              {
               //--- open position
               if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,0.0,tp))
                  printf("Position by %s to be opened",Symbol());
               else
                 {
                  printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment());
                  printf("Open parameters : price=%f,TP=%f",price,tp);
                 }
              }
            //--- in any case we must exit from expert
            res=true;
           }
//--- result
   return(res);
  }
//+------------------------------------------------------------------+
//| Check for short position opening                                 |
//+------------------------------------------------------------------+
bool CSampleExpert::ShortOpened(void)
  {
   bool res=false;
//--- check for short position (SELL) possibility

           {
            double price=m_symbol.Bid();
            double tp   =m_symbol.Ask()-m_take_profit;
            //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,InpLots,price)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
              {
               //--- open position
               if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,0.0,tp))
                  printf("Position by %s to be opened",Symbol());
               else
                 {
                  printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment());
                  printf("Open parameters : price=%f,TP=%f",price,tp);
                 }
              }
            //--- in any case we must exit from expert
            res=true;
           }
//--- result
   return(res);
  }
//+------------------------------------------------------------------+
 
SanAlex:

早晨好!

测试员不想开仓,并给出一个错误提示

误入歧途。

4756

发送交易请求失败

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我认为这里需要解决一些问题。


是的,这是你的经销商-Forexclub为他们的订单类型 FilingFock。我带着狗去散步,然后把它修好。没想到forexclub上还有人......

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Свойства ордеров - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ElenaFxPro4:

是的,是你的经销商-Forexclub让他们有一个FilingFoc订单类型。我带着狗去散步,然后把它修好。没想到forexclub上还有人......

填充模式应该由规则来设定,而不是从外汇交易商的名字来设定。


已添加。

你可以在CTrade交易类中看到一个例子

设置边距模式

根据当前的账户设置,设置保证金计算模式

设置符号类型填充

根据指定符号的设置,设置订单类型。

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetMarginMode
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetMarginMode
  • www.mql5.com
SetMarginMode - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ElenaFxPro4:

是的,是你的经销商-Forexclub让他们有一个FilingFoc订单类型。我带着狗去散步,然后把它修好。没想到forexclub上还有人......

没有注意到--你肯定有一个经纪人还在这里。

Rbtg_NYCInclude kod 01

 

它正在发挥作用。

Rbtg_NYCInclude tester 01

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

         ENUM_ORDER_TYPE_FILLING TypeFilling = ORDER_FILLING_FOK;
         if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari") TypeFilling = ORDER_FILLING_IOC;

交换了-----------

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

到目前为止,似乎工作得很好。

图片345

 
SanAlex:

它正在发挥作用。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

交换了-----------

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

到目前为止,似乎工作得很好。


随着算法的预先测试的进行,我想知道--结果是否相同?
 
Renat Akhtyamov:
因为它是用算法预先测试的,我不知道结果是否相同?

我仍在进行一分钟的测试--我的电脑很弱,所以测试很慢。

乍看起来不错--让我们看看最终的结果是什么样子的。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

在专家的测试器中没有错误

 
SanAlex:

早晨好!

测试员不想开仓,并给出一个错误提示

误入歧途。

4756

发送交易请求失败

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我认为这里应该纠正一些东西

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我打算尝试用这个功能来取代这个功能。

你不必如此。

第119行应该是 if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited" ) TypeFilling =ORDER_FILLING_FOK;

和AUTOOrderSELL的情况一样。就这样了。:)


 
ElenaFxPro4:

不需要。

第119行应该是 if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited" ) TypeFilling =ORDER_FILLING_FOK;

和AUTOOrderSELL的情况一样。就这样了。:)


我将暂时保持这种方式--我将在测试后纠正它。

- 不想让测试者停下来

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

唯一不好的是,现在正在进行测试--而我似乎在这里做得太过了

图片3456

 
Vladimir Karputov:

填充模式应该由规则来设定,而不是来自于外汇交易商的名字。


已添加。

你可以在CTrade交易类中看到一个例子

设置边距模式

根据当前的账户设置,设定保证金的计算模式

设置符号类型填充

根据指定符号的设置,设置订单类型。

非常感谢你。我应该使用自动模式,但我找不到它。 这就是为什么我准备了这个补丁,作为经纪人的简单说明,我必须使用哪一个:)他们只有2岁。重拍。谢谢你。