[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 186

 
NTH >> :

Hola.

¿Por qué el stop no se transfiere para las posiciones de compra? para la venta todo funciona.

if(PedidosTotal()>0)
{
if(Bid==bubuy||Bid==busell)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue);
}
return(0);
}

originalmente lo que es if(Bid==buy||Bid==busell),....??????? puede usted decir.

y probablemente la siguiente condición debería ser:

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*número de puntos,OrderTakeProfit(),0,Blue)

 

if(Bid==bubuy||Bid==busell)

La doble burbuja es un nivel al tocar el cual el stop de la posición de compra se traslada al nivel de apertura de esta posición.

El doble busell es el nivel para una posición de venta.

 
NTH >> :

if(Bid==bubuy||Bid==busell)

La doble burbuja es un nivel al tocar el cual el stop de la posición de compra se traslada al nivel de apertura de esta posición.

El doble busell es un nivel para una posición de venta.

comprobar el estado de todos modos.

 

Lo he descubierto

if(OrdersTotal()>0)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
if(OrderStopLoss()==OrderOpenPrice()) return(0);
if (OrderType()==OP_BUY) if(Bid>=compra) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Azul);
if(OrderType()==OP_SELL) if(Bid<=busell) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Rojo);
return(0);
}

Y otra pregunta, si los datos se toman de varios TFs, ¿es necesario que el EA abra todos estos gráficos (en diferentes) cuando trabaja en línea, o puedo tomar sólo un gráfico y establecer el EA en él? Supongamos que el EA trabaja en EUR/OD toma los datos de los marcos H1 H4 D1 para su análisis, y éste (el EA) está unido a H1, ¿debo abrir en otros gráficos H4 y D1?

 
NTH >> :

Lo he descubierto

if(PedidosTotal()>0)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
if(OrderStopLoss()==OrderOpenPrice()) return(0);
if(OrderType()==OP_BUY) if(Bid>=buy) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue);
if (OrderType()==OP_SELL) if(Bid<=busell) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Red);
return(0);
}

Y otra pregunta, si mi EA toma datos de varios TFs, ¿necesito que todos estos TFs estén abiertos cuando el EA trabaja en línea (en diferentes gráficos) o puedo tomar sólo un gráfico y establecer el EA en él? Supongamos que el EA trabaja en EUR/OD toma los datos de los marcos H1 H4 D1 para el análisis, y se adjunta a H1, ¿es necesario abrir en otros gráficos H4 y D1?

No es necesario abrir otros gráficos con marcos temporales... El EA calculará todos los datos a partir de los propios plazos.

 

Hola, ¿podríais decirme cómo arreglar el indicador https://www.mql5.com/ru/code/7361.

El asunto es que la señal aparece en la barra actual, y con cada tick suena una señal sonora. Me gustaría tener un sonido después del cierre de la barra, si la señal no se cancela.

//+------------------------------------------------------------------+
//| SilverTrend_Signal.mq4                                           |
//| Ramdass - Conversion only                                        |
//+------------------------------------------------------------------+
#property copyright "SilverTrend  rewritten by CrazyChart"
#property link      "http://viac.ru/"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Violet
//---- input parameters
extern int RISK=3;
extern int CountBars=350;
extern int NumberofAlerts=2;
int SSP=9;
int counter=0;
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,233);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,234);
   SetIndexBuffer(0, val1);
   SetIndexBuffer(1, val2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| SilverTrend_Signal                                               |
//+------------------------------------------------------------------+
int start()
  {
   if ( CountBars>=Bars) CountBars=Bars;
   SetIndexDrawBegin(0,Bars- CountBars+ SSP);
   SetIndexDrawBegin(1,Bars- CountBars+ SSP);
   int i, shift, counted_bars=IndicatorCounted();
   int i1, i2, K;
   double Range, AvgRange, smin, smax, SsMax, SsMin, price;
   bool uptrend, old;
//----
   if(Bars<= SSP+1) return(0);
//---- initial zero
   if( counted_bars< SSP+1)
     {
      for( i=1; i<= SSP; i++) val1[ CountBars- i]=0.0;
      for( i=1; i<= SSP; i++) val2[ CountBars- i]=0.0;
     }
//----
   K=33- RISK;
   for( shift= CountBars- SSP; shift>=0; shift--)
     {
      Range=0;
      AvgRange=0;
      for( i1= shift; i1<= shift+ SSP; i1++)
        { AvgRange= AvgRange+MathAbs(High[ i1]-Low[ i1]);
        }
      Range= AvgRange/( SSP+1);
//----
      SsMax=High[ shift]; SsMin=Low[ shift];
      for( i2= shift; i2<= shift+ SSP-1; i2++)
        {
         price=High[ i2];
         if( SsMax< price) SsMax= price;
         price=Low[ i2];
         if( SsMin>= price)  SsMin= price;
        }
      smin= SsMin+( SsMax- SsMin)* K/100;
      smax= SsMax-( SsMax- SsMin)* K/100;
      val1[ shift]=0;
      val2[ shift]=0;
      if (Close[ shift]< smin)
        {
         uptrend=false;
        }
      if (Close[ shift]> smax)
        {
         uptrend=true;
        }
      if ( uptrend!= old && uptrend==true)
        {
         val1[ shift]=Low[ shift]- Range*0.5;
         counter=0;
         if ( shift==0 && counter<= NumberofAlerts)
           {
            Alert("Silver Trend ",Period()," ",Symbol()," BUY");
            counter= counter+1;
           }
        }
      if ( uptrend!= old && uptrend==false)
        {
         counter=0;
         val2[ shift]=High[ shift]+ Range*0.5;
         if ( shift==0 && counter<= NumberofAlerts)
           {
            Alert("Silver Trend ",Period()," ",Symbol()," SELL");
            counter= counter+1;
           }
        }
      Comment( shift);
      old= uptrend;
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
La gente se reunió que conoció a un experto Martingail Dos manos 2,07 exactamente 2,07 o simplemente 2,7 no puede escribir con razón el nombre, ya que se descarga de un sitio junto con un montón de otros probados 2 semanas y lo hizo más del 100% dos semanas konestno poco, pero no tenía tiempo para probar más porque tuve que cultivar la unidad. ¿May que se reunió?
 
También tengo una solicitud para poner en este beneficio de punta, no lo entiendo, por favor.
Archivos adjuntos:
 

¡Saludos a todos!


Ayúdame a resolver el siguiente problema.

Hay un indicador personalizado que dibuja señales en el gráfico.

Las señales se dan con un retraso, que estoy tratando de determinar para cada señal y escribir junto a ella en el gráfico.

Decidí tratar de emitir la hora de aparición de la señal:

ObjectCreate(StringConcatenate("Text_",IndicatorNumber,"_",i), OBJ_TEXT, 0, "cur_time",short[i] + 0.0020);
ObjectSetText(StringConcatenate("Text_",IndicatorNumber,"_",i), TimeToStr(CurTime(),TIME_SECONDS), 10, "Arial", Lime);

Pero el código no funciona, no puedo ver la hora.

¿Qué estoy haciendo mal?

 

Hola.

He descargado con "Quote Archive" las cotizaciones de la libra/dólar (M1) desde 1999 en formato DAT, ¿cómo puedo convertir estos datos para probarlos?