Por favor, dame una pista, porque nunca he pedido ayuda a un programador - página 6

 
Serqey Nikitin:

No lo entiendes... Nadie va a arreglar las cotizaciones...

La normativa no prohíbe los "retrasos" en la ejecución de las órdenes... y se extiende cada vez más...

Ya veo lo que quieres decir. Probablemente me has entendido mal. Lo que quise decir es que hay límites para todo. El diferencial no se ampliará 10 veces por cada orden abierta. El retraso no se incrementará varias veces.

Y para ser sincero, no he venido aquí a presumir. Si la idea no funciona, estaré en la mayoría, es lo normal.
 
Serqey Nikitin:

No lo entiendes... Nadie va a arreglar las cotizaciones...

La normativa no prohíbe los "retrasos" en la ejecución de las órdenes... y se extiende cada vez más...

Lamento que hayas perdido tanto tiempo en una idea inútil..., y sólo porque caíste en los anuncios de reventa...
 
Serqey Nikitin:
Lamento que hayas perdido tanto tiempo en una idea inútil..., y sólo porque caíste en los anuncios de reventa...

Este es el fin de nuestro diálogo con usted. No quiero entrometerme e indagar en las especulaciones de los demás.

 
Aleksandr2233:

Este es el fin de nuestro diálogo con usted. No quiero entrometerme e indagar en las especulaciones de los demás.

Usa la cabeza... a veces ayuda si no te aconsejan bien...
 

El Asesor Experto establece Stop Loss y Take Profit a las órdenes pendientes, si no hay ninguna. Y elimina las órdenes pendientes si la distancia de la orden pendiente al precio supera la distancia de la orden pendiente al stop.

#property version   "2.00"
#property strict

input int StopLoss=300;
input int TakeProfit=500;

double loss, profit;
bool result;

string symbol;
double point;
int digits;
 
MqlTick tick;


int OnInit()
   {
   symbol=Symbol();
   point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   
   }

void OnTick()
   {
   SymbolInfoTick(symbol,tick);
   for(int i=OrdersTotal()-1; i>=0; i--)
      {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()!=symbol && OrderClosePrice()!=0) continue;
      if(OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(tick.ask-MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && tick.ask-OrderOpenPrice()>OrderOpenPrice()-OrderStopLoss())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      if(OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(tick.ask-MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && OrderOpenPrice()-tick.bid>OrderStopLoss()-OrderOpenPrice())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      }
   }

no probó

 
Aleksei Stepanenko:

El Asesor Experto establece Stop Loss y Take Profit a las órdenes pendientes, si no hay ninguna. Y elimina las órdenes pendientes si la distancia de la orden pendiente al precio supera la distancia de la orden pendiente al stop.

no han probado

Lo comprobaré más tarde. Gracias. Es más probable que te responda en un mensaje privado.

 
Serqey Nikitin:
Gira la cabeza..., a veces ayuda que no te den el consejo adecuado...

Gracias por los consejos.

 
Aleksei Stepanenko:

El Asesor Experto establece Stop Loss y Take Profit a las órdenes pendientes, si no hay ninguna. Y elimina las órdenes pendientes si la distancia de la orden pendiente al precio supera la distancia de la orden pendiente al stop.

no han probado

Sin embargo, no sé qué hacer con el código para obtener un archivo ex4 listo. Sé que hay un programa MetaEditor, pero sólo lo he abierto una vez.

 
ponerlo en la carpeta \MQL4\Indicators y reiniciar el terminal
Archivos adjuntos:
 
Aleksei Stepanenko:
ponerlo en la carpeta \MQL4\Indicators y reiniciar el terminal

y el archivo entiendo que es un experto

Una instantánea de la ee