Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 428

 
Artyom Trishkin:
No me ofende la terquedad. ¿Por qué?
Y las variables deben ser inicializadas explícitamente. Algún día llegarás a la importancia de la inicialización. Mientras tanto, puedes tirar todo lo que hay dentro de las llaves.

Agradezco la broma. Gracias.

 
input int ExtDepth=12;//
input int ExtDeviation=5;//
input int ExtBackstep=3;//

input int Deviation=10;

//---------------------------------
int zz_handle;
struct zz_info{
   double P_;
   datetime T_;
};
double zz_value[];
datetime zz_time[];
zz_info zz_highs[2];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   zz_handle=iCustom(_Symbol,PERIOD_CURRENT,"Examples\\ZigZag",ExtDepth,ExtDeviation,ExtBackstep);
   

   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

   int count=0; 
   int i=1;
   
   CopyBuffer(zz_handle,0,1,1,zz_value);
   if(zz_value[0]!=0)
      {
      while(count<2)
         {
            CopyBuffer(zz_handle,0,i,1,zz_value);
            CopyTime(_Symbol,PERIOD_CURRENT,i,1,zz_time);
            i++;
            if(zz_value[0]!=0)
               {
                  zz_highs[count].P_=zz_value[0];
                  zz_highs[count].T_=zz_time[0];
                  count++;
               }
                           
         }
      DrawFibofan(zz_highs);
      }
      double high[];
      double low[];
      datetime Time[];
      CopyHigh(_Symbol,PERIOD_CURRENT,1,1,high);
      CopyLow(_Symbol,PERIOD_CURRENT,1,1,low);
      CopyTime(_Symbol,PERIOD_CURRENT,1,1,Time);
      double fibo_p=ObjectGetValueByTime(0,"DisFibo",Time[0],0);
      Comment(fibo_p);
   
  }
//+------------------------------------------------------------------+
void DrawFibofan(zz_info &zz[])
{
   if(zz[0].P_-zz[1].P_>0) 
      {
         ObjectDelete(0,"AscFibo");
         ObjectCreate(0,"AscFibo",OBJ_FIBOFAN,0,zz[1].T_,zz[1].P_,zz[0].T_,zz[0].P_);
         ObjectSetInteger(0,"AscFibo",OBJPROP_LEVELS,1);
         ObjectSetDouble(0,"AscFibo",OBJPROP_LEVELVALUE,0.882);
         ObjectSetInteger(0,"AscFibo",OBJPROP_LEVELCOLOR,clrNavy);
         ObjectSetInteger(0,"AscFibo",OBJPROP_WIDTH,2);
         ObjectSetString(0,"AscFibo",OBJPROP_LEVELTEXT,"88.2");
      }

      else
      {
         ObjectDelete(0,"DisFibo");
         ObjectCreate(0,"DisFibo",OBJ_FIBOFAN,0,zz[1].T_,zz[1].P_,zz[0].T_,zz[0].P_);
         ObjectSetInteger(0,"DisFibo",OBJPROP_LEVELS,1);
         ObjectSetDouble(0,"DisFibo",OBJPROP_LEVELVALUE,0.882);
         ObjectSetInteger(0,"DisFibo",OBJPROP_LEVELCOLOR,clrNavy);
         ObjectSetInteger(0,"DisFibo",OBJPROP_WIDTH,2);
         ObjectSetString(0,"DisFibo",OBJPROP_LEVELTEXT,"88.2");
      }
}

Me puedes decir qué pasa, no entiendo cómo se obtiene el valor de la línea de abanico de Fibo en la vela anterior?

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Обсудим совместные проекты в редакторе - зачем они и...
 
Roman Sharanov:

Me puedes decir qué pasa, no entiendo cómo se obtiene el valor de la línea de abanico de Fibo en la vela anterior?

Algo se acumula aquí, tanto mql4 como mql5...

¿Qué idioma debo utilizar para obtener el valor?

 
nicholishen:

Comparación de números con coma flotante para la igualdad

bool ( fabs (number1-number2) < _Point / 10 * 5 )
bool flag = ( fabs (number1-number2) < _Point / 10 * 5 )
 
Si se borra una cuenta en el terminal, entiendo que sólo se borra la visualización de la cuenta en el terminal. la cuenta en sí en el servidor del broker no se borra.
 
igrok333:
Si se borra una cuenta en el terminal, entiendo que sólo se borra la visualización de la cuenta en el terminal. la cuenta en sí en el servidor del broker no se borra.

Sí, has acertado.

 
STARIJ:
Es muy sencillo. Es necesario establecer 7 parámetros para calcular el iMA. El primer parámetro, el nombre del símbolo, es obvio. Como segundo, marco temporal, establece M1. El tercer parámetro - el período - establecer tantas veces mayor que usted necesita, cuántos días es más de un minuto. El cuarto parámetro - shift = 0. Los dos siguientes parámetros -el método de promediación y el tipo de precio- ya los conoces. El último es el número de compás. Por favor, calcule el número de compás si sabe el tiempo que necesita. ¡Eso es todo! Vuelve a comprobarlo haciendo cálculos para los plazos M5 y M15. Tal vez incluso para la M30.

Alekseu Fedotov:

Es tan sencillo como eso.

Es así.


Lo probaré mañana y te informaré. Gracias)

 

¿Pueden decirme cómo atrapar y bloquear el momento de inversión del indicador SAR Parabólico? Al menos una idea de cómo hacerlo. Gracias de antemano.

 
Corvin85:

¿Pueden decirme cómo atrapar y bloquear el momento de inversión del indicador SAR Parabólico? Al menos una idea de cómo hacerlo. No tengo ni idea de cómo usarlo.


puede comprobar la barra actual y la anterior.

Por ejemplo, el anterior era más alto que el precio, el actual es más bajo que el precio.

 

Hola, queridos miembros del foro. ¿Puede usted aconsejar lo que hay que hacer para asegurar que la entrada t1 no se redibuja cuando se abre una posición en las mismas condiciones. De modo que cuando se produce una condición para cerrar estas (pero no otras) posiciones, ambas (o posiblemente más)

if(ЗДЕСЬ УСЛОВИЕ ОТКРЫТИЯ ПОЗИЦИИ БАЙ)
      {
      t1=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,0,0,"",0,0,Green);
      if(t1>0)
           {
            if(OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES))
              { Print("Открыта позиция BUY20");
               buy20=true;
              }
           }
         else
            Print("Error opening BUY20 order : ",GetLastError());
      return;
      }


billete. Hasta ahora sólo se lee el último ticket y el bucle de cierre ignora el primero. El bucle parece estar construido correctamente:

void ClosePoz()
  { RefreshRates();
         double WPR0 = iWPR(NULL,PERIOD_M5,bars,0);
         bool rez1 = false;
         bool rez2 = false;
  int total=OrdersTotal();
      for(int i=OrdersTotal()-1;i>=0;i--)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {
         if(OrderTicket()==t1 && buy20 && MathAbs(WPR0)>81)
         rez1 =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,clrNONE); 
        
         if(OrderTicket()==t2 && buy80 && MathAbs(WPR0)<20)
         rez2 =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,clrNONE);                 
         }
       continue;  
      }      
     
  }