Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 560

 
¿Puedes decirme qué escribir en el código para que las órdenes no se abran en cada tick?
 
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
Hay dos errores al compilar: No puedo averiguar qué está mal y cómo solucionarlo. Por favor, dame una pista.
 
Alexandr Saprykin:
Dos errores durante la compilación: no puedo averiguar qué está mal y cómo solucionarlo. ¿Podría decirme cómo solucionarlo?
Los telépatas están de vacaciones y no tienes ni cabecera ni extensión en la cabecera del código. Cómo puedo saber qué es y en qué idioma está :)
 
Karputov Vladimir:
Los telépatas están de vacaciones y no tienes una cabecera o una extensión en el código de la cabecera. Averigua qué es y en qué idioma está :)

Para los que no son teledirigidos))

//+------------------------------------------------------------------+
//|                                                   Break Even.mq4 |
//|                                                 Copyright 2016,  |
//|                                         /ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, "
#property link      "/ru"
#property version   "1.00"
#property strict
#property indicator_chart_window   //отображение внутри основного окна
#property indicator_buffers 1
#property indicator_plots   1
//--- plot BreakEven
#property  indicator_label1  "BreakEven"     //название индикатора
#property  indicator_type1   DRAW_LINE      //рисовать линией
#property  indicator_color1  clrGold       // цвет индикатора
#property  indicator_style1  STYLE_SOLID  //стиль индикатора
#property  indicator_width1  1
//--- indicator buffers
double         BreakEvenBuffer[];
//+------------------------------------------------------------------+
//| Рассчитываем точку безубыточности                                |
//+------------------------------------------------------------------+
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
//--- indicator buffers mapping
   SetIndexBuffer(0,BreakEvenBuffer);

//---
   return(INIT_SUCCEEDED);
  }
 
Alexandr Saprykin:

Para los que no son telepáticos))))

Sacar la función LotSize de OnInit().
 
edutak:

Error de lógica, ¿por qué no se abren las órdenes opuestas?

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Preguntas de los principiantes

Karputov Vladimir, 2016.04.16 13:04

Los telépatas están de vacaciones y no tienes una cabecera o una extensión en la cabecera del código. Averigua qué es y en qué idioma está :)

 
Karputov Vladimir:

¿Necesita describir el algoritmo?
 
edutak:
¿Necesita describir el algoritmo?

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Preguntas de los principiantes

Karputov Vladimir, 2016.04.16 13:04

Los telépatas están de vacaciones y no tienes una cabecera o una extensión en la cabecera del código. Averigua qué es y en qué idioma está :)

 
savinkins:
Tengo el nombre de usuario y la contraseña por defecto para el terminal. No hay nombre de servidor en la lista de selección, lo copio. Ahora no tengo ningún agente en la lista de la red, aunque el saldo aparece.
 
savinkins:

Para actualizar el terminal, conéctese al servidor de comercio MetaQuotes-Demo.