Redactaré un asesor de forma gratuita - página 166

 
Hola, me gustaría pediros consejo. ¿Pueden aconsejarme cómo cambiar mi Asesor Experto para que no opere en contra de la tendencia, sino que, por el contrario, siga la tendencia? Abrí nuevas posiciones con lote creciente por tendencia.

Ilan 2.0

 
kammann659 #:
Hola, me gustaría pediros consejo. ¿Pueden aconsejarme cómo cambiar mi Asesor Experto para que no opere en contra de la tendencia, sino que, por el contrario, siga la tendencia? Abrí nuevas posiciones con lote creciente por tendencia.

Ilan 2.0

Hola, es posible.

 

Buenas tardes. Opero con órdenes pendientes (sellstops, bystops). Quiero pedir que se escriba una parte del código en la que se cumpla la condición: se eliminan todas las órdenes pendientes que estén a una distancia (x) del precio actual. Es decir, un "pequeño conjunto" de órdenes pendientes "seguirá" constantemente el precio actual.

Por supuesto, esta idea puede implementarse de alguna otra manera, por ejemplo, para controlar la cantidad de paradas de venta y compra y al mismo tiempo rastrearlas para que las más largas se acerquen al precio actual.


Me parece que es lo mismo, pero me gusta la primera variante. Para el primer caso, la distancia x debe ser variable en la condición.

Entiendo que esto no es mucho código. He tratado de entender qué y cómo se debe describir, he mirado y estudiado EAs similares, pero no tengo suficiente cerebro para eso.

Gracias.

 

Hola,@Andrey Kuharev.

¿Busca una MT5 o una MT4?

 
Yuriy Bykov #:

Hola,@Andrey Kuharev.

¿Busca una MT5 o una MT4?

MT4
 

He vuelto a leer tu descripción y me he dado cuenta de que probablemente no entiendo exactamente lo que hay que hacer. Parece que necesitas lo siguiente:

  • Un script que ejecutará manualmente en el gráfico cuando sea necesario, o una función que puede insertar en su código (¿o es un EA que se ejecuta todo el tiempo y elimina las órdenes innecesarias?)
  • Tiene un parámetro X - el número de pips (un número entero)
  • Eliminará las órdenes pendientes (¿sólo BuyStop y SellStop?) en el símbolo del gráfico al que se aplica (¿o en todos los símbolos? En este caso, hay que poner la X para cada símbolo...)
  • Una orden pendiente para el símbolo necesario del tipo requerido se eliminará si la distancia entre su precio abierto y el precio actual es mayor que X
  • No es su tarea hacer pedidos

Corríjanme si me equivoco.

 
Yuriy Bykov #:

He vuelto a leer su descripción y me he dado cuenta de que probablemente no entiendo exactamente lo que hay que hacer. Parece que necesitas lo siguiente:

  • Un script que ejecutará manualmente en el gráfico cuando sea necesario, o una función que puede insertar en su código (¿o es un EA que se ejecuta todo el tiempo y elimina las órdenes innecesarias?)
  • Tiene un parámetro X - el número de pips (un número entero)
  • Eliminará las órdenes pendientes (¿sólo BuyStop y SellStop?) en el símbolo del gráfico al que se aplica (¿o en todos los símbolos? En este caso, hay que poner la X para cada símbolo...)
  • Una orden pendiente para el símbolo necesario del tipo requerido se eliminará si la distancia entre su precio abierto y el precio actual es mayor que X
  • No es su tarea hacer pedidos

Corríjanme si me equivoco.

Si veo una orden diferente, entonces hay que colocarla de nuevo, exactamente igual que si veo una orden diferente con una línea de beneficio/pérdida diferente. Lo haré yo mismo, para no distraer a la gente inteligente con mis tonterías. Para una mejor comprensión, aquí está el código de "Expert Advisor" en el que quiero insertar la función de borrado. En mi EA, marqué el parámetro X como externo double v_util = 50; // distancia del precio actual a una orden pendiente de eliminar

//+------------------------------------------------------------------+
//|Pedidos pendientes.mq4 |
//| Copyright 2022, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Software Corp."
#property link"https://www.mql5.com"
#property version "1.00"
#property strict
//------- Parámetros externos de EA -----------------------------------------+
extern double delitel_Equity_lots = 1400000; // Divisor para determinar el lote de trabajo.
extern double schag = 2; // paso de apertura de la orden pendiente desde el precio actual
extern double v_util = 50;// distancia del precio actual a las órdenes pendientes eliminadas
extern int StopLoss = 10000;
extern int TakeProfit = 5;
extern int MagicBuy = 1111111; // MagicNumber para órdenes de COMPRA
extern int MagicSell = 2222222; // Número mágico para órdenes de VENTA
//+------------------------------------------------------------------+
void OnTick()

{double Lots = NormalizeDouble(AccountBalance()/delitel_Equity_lots, 2); // Volumen de la posición.

OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+schag*_Point,_Digits) ,0,NormalizeDouble(Ask-(StopLoss-schag)*_Point,_Digits),
NormalizeDouble(Ask+(TakeProfit+schag)*_Point,_Digits),MagicBuy); // Abrir BuyStop
Print (GetLastError()); // Mensaje de error
OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-schag*_Point,_Digits),0,NormalizeDouble(Bid+(StopLoss-schag)*_Point,_Digits),
NormalizeDouble(Bid-(TakeProfit+schag)*_Point,_Digits),MagicSell;)// Abrir SellStop
Print (GetLastError()); // Mensaje de error
}
//+------------------------------------------------------------------+

Todo es sencillo, sin complejidades. Entiendo que hay que pagar por todo tipo de artilugios, nadie va a inventar superestrategias y supercódigos gratis. Quiero probar el trabajo en esta dirección por ahora y pedir hacer una simple remoción, nada más ... la única cosa es, si no es demasiado largo y no es demasiado difícil, se podría añadir un parámetro - la distancia entre el tapón, entonces sería perfecto. Pero entiendo que todo este trabajo y el tiempo ... así que al menos la eliminación. Gracias.

Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • 2022.04.13
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
Esto es lo que salió. Espero que esto ayude a probar el funcionamiento.
Archivos adjuntos:
Pending.mq4  10 kb
 
Yuriy Bykov #:
Esto es lo que tenemos. Espero que esto ayude a probar el funcionamiento.

Por favor, aconsejar, y más 10 aquí:

double minOpenPriceBuy = 1e+10;
double maxOpenPriceBuy = 0;
double minOpenPriceSell = 1e+10;
double maxOpenPriceSell = 0;

, esto es diez que extern int delta = 10;

 

No, es una forma diferente de escribir el número 10000000000, así que no tienes que escribirlo así

double minOpenPriceBuy = 10000000000;

...