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

 
Artyom Trishkin:

Antes de OrderModify(), imprime los valores del precio de apertura y del nuevo precio de stop.

Y guárdate tu irrespetuoso "¿no?" si quieres ayuda. Sin embargo, he publicado en este hilo una plantilla que funciona perfectamente para cualquier red de arrastre, puedes buscarla.

irrespetuoso "no lo hizo"? - Lo siento, no he puesto nada.

 
        if((fMarketOrderss(OP_SELL)>=1)) { 
       if( ((Bid-Opens)/ma+Times/1440) > SELL ) {
if(OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,NULL,321,0,1)>0){} }}

Por favor, aconséjeme. Qué función hay que añadir para sustituir la VENTA por números que vayan en orden. Si hay un acuerdo abierto, entonces ponga 1. En cuanto se abra este trato dará 2 y así sucesivamente. Si no hay ofertas, este número se restablecerá.

 
Artyom Trishkin:

Antes de OrderModify(), imprime los valores del precio de apertura y del nuevo precio de stop.

Imprime los mismos valores. ¿Por qué comprueba != entonces, puede decirme?

 
Andrey Sokolov:

Escribe los mismos valores. ¿Por qué comprueba != entonces, puede decirme?

Lee sobre la comparación de números reales.

 
Artyom Trishkin:

Lee sobre la comparación de números reales.

A leer. Gracias
 
Andrey Sokolov:
Me voy a leer. Gracias

No se limite a comparar, sino que compruebe si "no es hora de moverse", es decir, si no es menos de lo necesario "n>=p"

 
Vitaly Muzichenko:

No se limite a comparar, sino que compruebe si "¿no es hora de moverse?", es decir, si "n>=p" es menor de lo necesario

Gracias
 
Hola, tengo un indicador de niveles de color, tengo un problema cuando intento aplicar 2 partes de este indicador a un gráfico, concretamente la ventana del 1er indicador desaparece y sólo se muestra la ventana del 2º indicador, y cuando hago clic para crear un objeto - rectángulo, se crean 2 objetos, uno de un indicador y otro de otro. Por favor, aconseja cómo solucionarlo, para que varias partes de este indicador puedan ser utilizadas en el gráfico, y los objetos puedan ser creados correctamente? ¿Puedo cambiar algo en el código o viceversa?Ejemplo
Archivos adjuntos:
 

He montado el indicador lo mejor que he podido
Necesito ayuda para resaltar las barras, por ejemplo un rectángulo, cuando los índices están en la zona de +/- 0,4%.
O al menos el propio código
Mi código de indicador

//+------------------------------------------------------------------+
//|                           Copyright © 2018, forex-time@mail.ru   |
//|                        Copyright © 2018, mr.aliaksei@yandex.ru   |
//|                                         % Алексея Королькова.mq4 |
//+------------------------------------------------------------------+
#property copyright   "Copyright © 2018, forex-time@mail.ru"
#property copyright   "Copyright © 2018, mr.aliaksei@yandex.ru"
#property link        "http://axe44.opentraders.ru/bio/"
#property version     "1.10"
#property strict 
//+------------------------------------------------------------------+
//--- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  LimeGreen
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  2
#property  indicator_level1  0.0
#property  indicator_levelcolor DarkGray
//--- indicator parameters
input int InpFastEMA=14;   // Fast EMA Period
input int Metod     =1;   // Metod EMA Period 0-3
input string Pereferics="";// Переферикс после названия основной пары. Например EURUSD.m где переферикс .m
//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
//--- right input parameters flag
bool   ExtParameters=false;
string IndName= "% A.K ("+IntegerToString(InpFastEMA)+")";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexBuffer(0,Buffer1);SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,Buffer2);SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,Buffer3);SetIndexStyle(2,DRAW_LINE);

//--- name for DataWindow and indicator subwindow label
   IndicatorShortName(IndName);
//--- check for input parameters
   if(InpFastEMA<=1  )
     {
      Print("Wrong input parameters");
      ExtParameters=false;
      return(INIT_FAILED);
     }
   else
      ExtParameters=true;
//--- initialization done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
  {
    int i = rates_total-prev_calculated-1;

    while(i >= 0)  
      {
      double eurusd=(((iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eurjpy=(((iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double usdjpy=(((iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eur=(eurusd+eurjpy)/2;
      double usd=(-eurusd+usdjpy)/2;
      double jpy=-(usdjpy+eurjpy)/2;
      Buffer1[i]=ND(eur,1);
      Buffer2[i]=ND(usd,1);
      Buffer3[i]=ND(jpy,1);

      Pair(IndName+"EUR","EUR",54,indicator_color1);
      Pair(IndName+"USD","USD",28,indicator_color2);
      Pair(IndName+"JPY","JPY",5,Blue);
                  
      i--;}
return(rates_total);}
//+------------------------------------------------------------------+
//|ND - нормализация числа                                           |
//-------------------------------------------------------------------+
double ND(double value, int digits) {  
      return(NormalizeDouble(value, digits));}  
//+------------------------------------------------------------------+
void Pair(string name,string txt, int shift, color col){
      int window=WindowFind(IndName);
      //если окно не найдено - "текстовые метки" будут созданы в окне графика
      if(window<0) window=0;
       ObjectCreate(name,OBJ_LABEL,window,0,0,0,0,0,0);
          ObjectSet(name,OBJPROP_CORNER,0);
          ObjectSet(name,OBJPROP_XDISTANCE,shift);
          ObjectSet(name,OBJPROP_YDISTANCE,2);
          ObjectSet(name,OBJPROP_CORNER,CORNER_RIGHT_UPPER);
      ObjectSetText(name,txt,8,"Arial",col);}
//+------------------------------------------------------------------+

Me recomendaron el código, pero no sé cómo adjuntarlo:

ObjectCreate(VLINE, OBJ_VLINE, 0, 0, 0);
ObjectSet(VLINE, OBJPROP_COLOR, VLINE_COLOR);
ObjectSet(VLINE, OBJPROP_STYLE, VLINE_STYLE);

ObjectDelete(VLINE);

if(Bf<0.4 && Bf>(-0.4))
ObjectSet(VLINE, VLINE, VLINE);

Gracias de antemano.

 
¿Es posible que en lugar de
Alto/Bajo>1,02 do
Alto>Bajo*1,02
¿Qué opción es mejor para el indicador