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

 
anrei2002 #:

La palabra clave es AYUDA.

Como ya he escrito antes: ¡más vale que me digan de inmediato que este indicador no puede ser finalizado en este foro!

Y eso es todo... y voy a entender.... ¿por qué se vertió tanta escoria?

Yo lo escribí en primer lugar.

nopuedes arreglarlo, está torcido...

Eso fue lo primero que escribí. No lo viste, no te diste cuenta, pensaste que era una mierda.

El hecho de que consideres mi intento de transmitirte como basura que has revuelto aquí, no me ofende, no lo he intentado por tu bien, otro lo leerá y no se equivocará. En cuanto a ti, suerte con tu indicador, busca otros foros si no te gusta este.

 
Nikolay Ivanov #:

He escrito de inmediato.

No hay manera de arreglarlo, está torcido...

se puede arreglar, pero redibujará las 8 barras más externas.

 
anrei2002 #:

La palabra clave es AYUDA.

Te ayudé - escribí lo que tenías que hacer - y...)

¿qué has hecho?

 
Taras Slobodyanik #:

Se puede arreglar, pero redibujará las 8 barras más externas.

También se dijo que la señal puede aplicarse inmediatamente a la novena barra y no habrá ningún tipo de redistribución.

Taras Slobodyanik#:

te he ayudado - he escrito lo que tienes que hacer - y...)

¿qué has hecho?

por cierto, usted conseguiría (con cierta probabilidad) arbitrar, es necesario acordar de antemano todo lo que tiene que hacer.

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Nikolay Ivanov #:

También se dijo que se puede enviar una señal en la 9ª barra y no habrá ningún tipo de sobreprecio... pero el hombre no entiende...

por cierto, llegarías a arbitrar, tienes que negociar todo por adelantado... lo que necesita no se puede hacer sin reservas

todo es posible hacer aquí, el hombre está de acuerdo con las anulaciones y señala 8 barras de vuelta, ¿cuál es el problema?

ps. las divergencias y los fractales también aparecen en el pasado, no es gran cosa.
 
Taras Slobodyanik #:

Todo se puede hacer aquí, la persona está de acuerdo con la recalificación y las señales 8 barras de vuelta, ¿cuál es el problema?

Tiene que "sólo" quitar las flechas de más y ya está. Y cómo hacerlo, recalificando o no, es su problema... Así es como empieza cualquier arbitraje :)

Depende de cómo se formule el pliego de condiciones, pero en cualquier caso, yo no me arriesgaría... Incluso un arbitraje exitoso supone meses de estrés...

 
anrei2002 #:

La palabra clave es AYUDA.

Como ya he escrito antes: ¡más vale que me digan de inmediato que este indicador no puede ser finalizado en este foro!

Y eso es todo ... y voy a entender.... ¿por qué tanta escoria se vertió??

Exactamente. Si ayudas a hacerlo, significa que lo haces tú, y alguien te ayuda tanto como puedas y tanto como puedas y tanto como puedas.

Si todo lo que haces es pedirlo, sin hacer nada más, y alguien lo hace por ti, entonces es una oficina de buena voluntad.

Cuando creé este hilo, me refería a la ayuda, no a la producción de deseos gratuitos.

 

¡Hola Estimados usuarios del foro y programadores experimentados! Necesito ayuda para finalizar el Asesor Experto)) Por favor, aconseja cómo añadir 2 cosas al asesor de código:

1. La situación es la siguiente: abro una orden (1ª) con TP y SL y un lote determinado (probablemente 0,01). Si esta orden se cierra en la toma de beneficios - genial, nada cambia. Pero si esta (1ª) orden se cierra en SL, la siguiente orden inmediatamente después (2ª) se abre con un lote 2 veces mayor (0,01*2=0,02). Si esta 2ª orden se cierra en Take Profit, entonces la siguiente orden (3ª orden) se abre con un lote normal, es decir, se necesita un lote 2 veces mayor sólo para la siguiente orden (2ª orden) después de que la anterior (1ª) se haya cerrado en SL. Si la tercera orden se cerrará en SL por segunda vez consecutiva, el lote permanecerá incrementado en 2x hasta que no haya cierre en TP. Espero haber descrito con detalle la lógica de lo que hay que añadir;


2. y lo segundo que tenemos que añadir es el movimiento del SL. ahora lo explicaré con un ejemplo: supongamos que tenemos una orden con parámetros básicos T.p. + 300, S.l. - 500. El precio se mueve en la dirección deseada y pasa a +100 pips del precio de apertura de la orden. Una vez que el precio llega a +100 desde el precio de apertura de la orden, el SL debe pasar de la base -500 a +90. Es decir, cuando el precio llega a +100 pips desde el precio de apertura de la orden, transferimos la orden a Breakeven ajustando S,L a +90 pips. Después de eso, si el precio va más lejos en la dirección deseada y pasa por otros + 50 pips - S.L. se mueve por 50 pips => ahora debería estar en + 140 pips desde el precio de apertura de la orden. Es decir, el S.L. primero se mueve desde su posición base a + 90 pips del precio de apertura de la orden y luego se mueve si pasa por + 50 pips ( - 500 => + 90 => + 140 => + 190 etc.). Y así sucesivamente hasta que el precio llegue a T.P. o cuando la tendencia se invierta y llegue a la S.L.


Espero haber descrito todo en detalle, y realmente espero su ayuda, porque añadiendo estos elementos que faltan, el Asesor Experto estará listo)) Si tiene alguna duda, no dude en preguntar)) A continuación pego una parte del código del Asesor Experto:

extern string s1                = "Main options";
extern string Symbol            = "";     
extern int timeframe            = 30;     
extern int MagicNumber          = 122122; 
//+------------------------------------------------------------------+
extern string s2                = "Trading options";
extern int BarsForConfirm       = 40;     
extern double Lot               = 0.01;      // размер лота: 0 - авт.расчет (свободная маржа/9000 => 100/5000=0.02 лота); любое другое число - фиксированный лот
extern int StopLoss             = 50;     // стоплосс (в пунктах)
extern int TakeProfit           = 30;     // тейкпрофит (в пунктах)
//+------------------------------------------------------------------+

bool OrderBuy = true, OrderSell = true, Trade = false;  
int timeprev = 0, Slip = 3.0, Start, cnt=1, a;  
datetime newbar=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(CheckForOpen()==0) {a=1; Trade = false;}
   else
   if(CheckForOpen()==1) {a=0; Trade = false;}
   else {Trade = true;}
   if (Digits == 3 || Digits == 5) // Пересчет для 5-ти знаков, работает автоматически
     {                                                    
      TakeProfit *= 10;
      StopLoss *=10;
      Slip *=10;
     } 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  
  {
  
   if(CheckForOpen()==a) Trade = true;
   if(newbar!=Time[0] && Trade==true)  
     {
      if(CheckForOpen()!=Start)        
        {Start=CheckForOpen(); cnt=1;}
      else {cnt+=1;}

      if(cnt==BarsForConfirm) {        
             
                
             
         if(CheckForOpen()==0)         
           {
            if(OrderSend(Symbol(),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue))
              {Print("BUY OK");} else {Print(GetLastError());}
           } 
         if(CheckForOpen()==1)         
           {
            if(OrderSend(Symbol(),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red))
              {Print("SELL OK");} else {Print(GetLastError());}
           }
        }   
      newbar=Time[0];  //открытие ордера на цене открытия свечи
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lots()  // Расчет объема лота
  {
   double Lots;
   if(Lot>0) return(Lot);           
   Lots=AccountFreeMargin()/9000;  // раcчёт лота - свободная маржа/9000 => 100/9000=0.01 лота 
   Lots=MathMin(15,MathMax(0.01,Lots));
   if(Lots<0.1) Lots=NormalizeDouble(Lots,2);
   else 
     {
      if(Lots<1) Lots=NormalizeDouble(Lots,1);
      else       Lots=NormalizeDouble(Lots,0);
     }
   return(Lots);
  }
//+------------------------------------------------------------------+
 
MakarFX #:

Captura

Muchas gracias. Siento no haber respondido enseguida, me he distraído.
Lo probé, noté un pequeño problema...
Sólo dibuja si lo ejecuto en el símbolo USDX.
No aparece en el EURUSD (está claro que estoy cambiando Symbol_2).
Ver fotos, puede ser más fácil de entender.
¿Alguna idea de por qué esto es así, cómo solucionarlo?
Archivos adjuntos:
EURUSD.JPG  260 kb
USDX.JPG  318 kb
 

Hola.

Perdón por la pregunta estúpida... El pedido está ahora correctamente colocado, entonces el error 129 - precio incorrecto. Se está convirtiendo en un dolor de cabeza... Ayúdame... ((


int f = OrderSend(para_2,OP_BUY,0.1,Ask_para_2,3,0,0,"",0,Blue); if(f < 0){Alert("Error al establecer la orden Buy Stop: ", GetLastError());}

Razón de la queja: