Robot completo para MT5 - página 5

 

¡Buenos días!

El probador no quiere abrir una posición, genera un error

ERR_TRADE_SEND_FAILED

4756

Fallo en el envío de la solicitud de comercio

Rbtg_NYCInclude tester

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

Creo que hay que corregir algo aquí

Rbtg_NYCInclude kod

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

Ahora intentaré sustituir esta función por esta otra

//+------------------------------------------------------------------+
//| 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:

¡Buenos días!

El probador no quiere abrir una posición y da un error

ERR_TRADE_SEND_FAILED

4756

Fallo en el envío de la solicitud de comercio

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

Creo que hay que arreglar algo aquí.


Sí. Es su distribuidor-Forexclub para ellos el tipo de orden es FilingFock. Daré un paseo con el perro y lo arreglaré. No pensé que hubiera nadie más en forexclub...

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

Sí. Es su distribuidor-Forexclub para que tengan un tipo de orden FilingFoc. Daré un paseo con el perro y lo arreglaré. No pensé que hubiera nadie más en forexclub...

El modo de llenado debe establecerse por las reglas, no por el nombre del comerciante de divisas.


Añadido.

Puede ver un ejemplo en la clase de comercio de CTrade

SetMarginMode

Establece el modo de cálculo del margen según la configuración actual de la cuenta

SetTypeFillingBySymbol

Establece el tipo de orden según la configuración del símbolo especificado

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

Sí. Es su distribuidor-Forexclub para que tengan un tipo de orden FilingFoc. Daré un paseo con el perro y lo arreglaré. No pensé que hubiera nadie más en forexclub...

No lo había notado - seguramente tiene un corredor todavía aquí

Rbtg_NYCInclude kod 01

 

Está funcionando.

Rbtg_NYCInclude probador 01

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

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

intercambiado -----------

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

Parece que funciona bien hasta ahora.

Imagen 345

 
SanAlex:

Está funcionando.

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

intercambiado -----------

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

Parece que funciona bien hasta ahora.


como la prueba previa del algoritmo, me pregunto: ¿el resultado es el mismo?
 
Renat Akhtyamov:
ya que se ha probado previamente con el algoritmo, me pregunto si el resultado es el mismo.

Todavía estoy probando en un minuto - mi ordenador es débil, así que las pruebas son lentas.

A primera vista tiene buena pinta, pero veamos el resultado final.

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

sin errores en el probador de Expert

 
SanAlex:

¡Buenos días!

El probador no quiere abrir una posición y da un error

ERR_TRADE_SEND_FAILED

4756

Fallo en el envío de la solicitud de comercio

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

Creo que hay que corregir algo aquí

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

Voy a intentar sustituir esta función por esta otra.

No es necesario.

La línea 119 debería ser if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling = ORDER_FILLING_FOK;

y lo mismo para AUTOOrderSELL. ESO ES TODO. :)


 
ElenaFxPro4:

No es necesario.

La línea 119 debería ser if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited") TypeFilling = ORDER_FILLING_FOK;

y lo mismo para AUTOOrderSELL. ESO ES TODO. :)


Lo dejaré así por ahora - lo corregiré después de la prueba

- no quieren detener al probador

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

lo único malo es que la prueba está en marcha ahora - y parece que me estoy pasando aquí

Foto 3456

 
Vladimir Karputov:

El modo de llenado debe establecerse por las reglas, no por el nombre del comerciante de divisas.


Añadido.

Puede ver un ejemplo en la clase de comercio de CTrade

SetMarginMode

Establece el modo de cálculo del margen de acuerdo con la configuración actual de la cuenta

SetTypeFillingBySymbol

Establece el tipo de orden según la configuración del símbolo especificado

Muchas gracias. Debería usar el modo automático pero no lo he encontrado, por eso he preparado este parche como simples instrucciones para el corredor que tengo que usar :) Sólo son dos. Remake. Gracias.

Razón de la queja: