Scriverò un EA gratuitamente - pagina 166

 
Salve, vorrei chiedervi un consiglio. Potete per favore consigliarmi come cambiare il mio Expert Advisor in modo che non faccia trading contro il trend, ma al contrario, segua il trend? Ho aperto nuove posizioni con lotto crescente per tendenza.

Ilan 2.0

 
kammann659 #:
Salve, vorrei chiedervi un consiglio. Potete per favore consigliarmi come cambiare il mio Expert Advisor in modo che non faccia trading contro il trend, ma al contrario, segua il trend? Ho aperto nuove posizioni con lotto crescente per tendenza.

Ilan 2.0

Ciao, è possibile.

 

Buon pomeriggio. Faccio trading con ordini pendenti (sellstops, bystops). Voglio chiedere di scrivere una parte di codice in cui la condizione è soddisfatta - tutti gli ordini pendenti che si trovano a una distanza (x) dal prezzo corrente vengono cancellati. Cioè, un "piccolo insieme" di ordini pendenti "seguirà" costantemente il prezzo corrente.

Naturalmente, questa idea può essere implementata in qualche altro modo, per esempio, per controllare la quantità di stop Sell e Buy e allo stesso tempo tracciarli in modo che quelli più lunghi siano spostati più vicino al prezzo corrente.


Mi sembra che sia lo stesso, ma mi piace la prima variante. Per il primo caso, la distanza x dovrebbe essere variabile nella condizione.

Capisco che questo non è molto codice. Ho cercato di capire cosa e come dovrebbe essere descritto, ho guardato e studiato EA simili, ma non ho abbastanza cervello per questo.

Grazie.

 

Ciao,@Andrey Kuharev.

State cercando un MT5 o un MT4?

 
Yuriy Bykov #:

Ciao,@Andrey Kuharev.

State cercando un MT5 o un MT4?

MT4
 

Ho riletto la tua descrizione e mi sono reso conto che probabilmente non capisco esattamente cosa bisogna fare. Sembra che abbiate bisogno di quanto segue:

  • Uno script che eseguirai manualmente sul grafico quando necessario, o una funzione che puoi inserire nel tuo codice (o è un EA che funziona sempre e rimuove gli ordini non necessari?)
  • Ha un parametro X - il numero di pip (un intero)
  • Cancellerà gli ordini pendenti (solo BuyStop e SellStop?) sul simbolo del grafico a cui è applicato (o su tutti i simboli? In questo caso, la X dovrebbe essere impostata per ogni simbolo).
  • Un ordine pendente per il simbolo necessario del tipo richiesto sarà cancellato se la distanza tra il suo prezzo aperto e il prezzo corrente è maggiore di X
  • Non è suo compito piazzare ordini

Correggetemi se mi sbaglio.

 
Yuriy Bykov #:

Ho riletto la tua descrizione e mi sono reso conto che probabilmente non capisco esattamente cosa bisogna fare. Sembra che abbiate bisogno di quanto segue:

  • Uno script che eseguirai manualmente sul grafico quando necessario, o una funzione che puoi inserire nel tuo codice (o è un EA che funziona sempre e rimuove gli ordini non necessari?)
  • Ha un parametro X - il numero di pip (un intero)
  • Cancellerà gli ordini pendenti (solo BuyStop e SellStop?) sul simbolo del grafico a cui è applicato (o su tutti i simboli? In questo caso, la X dovrebbe essere impostata per ogni simbolo).
  • Un ordine pendente per il simbolo necessario del tipo richiesto sarà cancellato se la distanza tra il suo prezzo aperto e il prezzo corrente è maggiore di X
  • Non è suo compito piazzare ordini

Correggetemi se mi sbaglio.

No no, è molto semplice: sul grafico dove si trova e lì dovrebbe cancellare. Questo è un EA, ho scritto il codice (beh, se si può davvero chiamare un codice - un paio di righe))) che apre gli ordini pendenti di vendita e di acquisto, ho solo bisogno di quelli pendenti che erano lontani dal prezzo (rispettivamente, vendere si ferma dal Bid, comprare si ferma dalla Ask) per cancellare da X numero di punti. Lo farò io stesso, non per distrarre le persone intelligenti con le mie sciocchezze. Per una migliore comprensione, ecco il codice di "Expert Advisor" in cui voglio inserire la funzione di cancellazione. Nel mio EA, ho segnato il parametro X come extern double v_util = 50; // distanza dal prezzo corrente a un ordine pendente da cancellare

//+------------------------------------------------------------------+
//|Ordini in sospeso.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
//------- Parametri esterni -----------------------------------------+
extern double delitel_Equity_lots = 1400000; // Divisore per determinare il lotto di lavoro.
extern double schag = 2; // passo di apertura dell'ordine pendente dal prezzo corrente
extern double v_util = 50;// distanza dal prezzo corrente agli ordini pendenti cancellati
extern int StopLoss = 10000;
extern int TakeProfit = 5;
extern int MagicBuy = 1111111; // MagicNumber per ordini BUY
extern int MagicSell = 2222222; // MagicNumber for SELL orders
// //+------------------------------------------------------------------+
void OnTick()

{double Lots = NormalizeDouble(AccountBalance()/delitel_Equity_lots, 2); // Position volume.

OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+schag*_Point,_Digits) ,0,NormalizeDouble(Ask-(StopLoss-schag)*_Point,_Digits),
NormalizeDouble(Ask+(TakeProfit+schag)*_Point,_Digits),MagicBuy); // Open BuyStop
Print (GetLastError()); // Messaggio di errore
OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-schag*_Point,_Digits),0,NormalizeDouble(Bid+(StopLoss-schag)*_Point,_Digits),
NormalizeDouble(Bid-(TakeProfit+schag)*_Point,_Digits),MagicSell;)// Aprire SellStop
Print (GetLastError()); // Messaggio di errore
}
//+------------------------------------------------------------------+

Tutto è semplice, nessuna complicazione. Capisco che si debba pagare per ogni sorta di espedienti, nessuno inventerà super strategie e super codici gratis. Voglio testare il lavoro in questa direzione per ora e chiedere di fare una semplice rimozione, niente di più...l'unica cosa è, se non è troppo lungo e non troppo difficile, si potrebbe aggiungere un parametro - la distanza tra il tappo, allora sarebbe perfetto. Ma capisco che tutto questo lavoro e tempo...quindi almeno la rimozione. Grazie!

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
 
Questo è quello che è venuto fuori. Spero che questo aiuti a testare il funzionamento.
File:
Pending.mq4  10 kb
 
Yuriy Bykov #:
Questo è quello che abbiamo ottenuto. Spero che questo aiuti a testare il funzionamento.

Si prega di consigliare, e più 10 qui:

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

, questo è il dieci che extern int delta = 10;

 

No, è una forma diversa di scrivere il numero 10000000000, quindi non devi scriverlo in quel modo

double minOpenPriceBuy = 10000000000;

...

Motivazione: