Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1926

 
Maxim Kuznetsov #:

disegnare (ok, visualizzare) livelli di "progressione tipo livelli, ci può essere uno stop-loss" è in generale abbastanza facile. Ma non è molto chiaro perché.

Non hanno provato a chiedere al cliente, cosa vuole lì in dettaglio?

PS / e, sì, dobbiamo prendere una "pausa creativa", penso che il cliente capirà la situazione.

Ha pensato per più di una settimana ed è stato deciso.

In origine era diverso, è stato consegnato, ma dopo una settimana di pausa ha riportato le innovazioni. Capisco che l'incarico è stato completato, ma mi sembra sbagliato lasciare il cliente, anche se non faceva parte del TOR originale.

La mia richiesta è ancora valida!

 
Vitaly Muzichenko #:

Ci pensò per più di una settimana e fu deciso.

In origine era diverso, è quello che è stato consegnato, ma dopo una settimana di pausa ha riportato le innovazioni. Capisco che l'incarico è stato completato, ma in qualche modo non mi sembra giusto lasciare il cliente, anche se non faceva parte dei ToR originali.

La mia richiesta è valida!

Calmati Vitaly, la richiesta di cosa?

per fare modifiche all'EA? Non c'è codice e nessun posto dove fare modifiche. E non è del tutto corretto modificare l'ordine di freelance in questo thread. In generale, nessuna delle due parti

void OnStopLoss() {

    // some code placed here

}

è improbabile che aiuti.

 
Maxim Kuznetsov #:

Calmati Vitaly, qual è la richiesta?

Per fare modifiche all'EA? Non c'è nessun codice e nessun posto dove fare modifiche. E non è del tutto corretto correggere l'ordine di freelance in questo thread. In generale, nessuna delle due parti

void OnStopLoss() {

    // some code placed here

}

non è affatto utile.

Non proprio un EA, un trawl separato che si appende a un grafico e tiene traccia di tutti i simboli.

Il codice è pesantemente gonfiato

 
Vitaly Muzichenko #:

C'è una posizione e uno stoploss su di essa.

Nelle impostazioni la rete a strascico è 30. Quindi mostra la linea al livello in cui la rete a strascico si attiverà, e così tutte le 7 linee: 30-60-90-120-150-180-210, come la progressione.

Passato 30 e raggiunta la linea, il trawl sposta gli stop al livello del prezzo aperto, al raggiungimento di 60, sposta gli stop a +30 dal prezzo aperto, cioè al livello dove è scattato il primo stop, ecc.

Suppongo che voglia controllare le linee del grafico, ma questo è più complicato, quindi deve essere semplificato.

In alternativa, metti 7 parametri per i livelli nelle impostazioni.

P.S. Scusa per la lunga risposta, stavo perdendo internet.

7 parametri non è un'opzione) 7 nomi di linee orizzontali nei parametri che disegnerà e nominerà. E noi balleremo da loro. E se i parametri, la gamma di movimento dei prezzi e il numero di livelli. Calcolare e disegnare. Bene, quando il livello si innesca, dovrebbe disegnare la linea sl e se la sl coincide con il livello di prezzo, dovrebbe cambiare il suo colore.
 
Valeriy Yastremskiy #:
7 parametri non è un'opzione) 7 nomi di linee orizzontali nei parametri che disegnerà e nominerà. E dovremmo procedere da loro. E se i parametri, la gamma di movimento dei prezzi e il numero di livelli. Calcolare e disegnare. Bene, quando il livello si innesca, dovrebbe disegnare la linea sl e se la sl coincide con il livello di prezzo, dovrebbe cambiare il suo colore.

Hai bisogno di un algoritmo che disegni delle linee ai prezzi calcolati.

Quando tutte le posizioni sono chiuse, devono essere cancellate.

 
Valeriy Yastremskiy #:
7 parametri non è un'opzione) 7 nomi di linee orizzontali nei parametri che disegnerà e nominerà. E dovremmo ballare da loro. Se i parametri, la gamma di movimento del prezzo e il numero di livelli. Calcolare e disegnare. Bene, quando il livello si innesca, dovrebbe disegnare la linea sl e se la sl coincide con il livello di prezzo, dovrebbe cambiare il suo colore.

Chiarimento:

В настройках трал 30. Значит показать линии на уровнях, где сработают тралы, и так все 7 линий: 30-60-90-120-150-180-210, типа прогрессии.

Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60, переводит стопы на +30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.

Cambia il codice, disegna linee e nient'altro.


Grazie!

 
Buon pomeriggio. Bene consigliare un principiante, cercando di caricare un esperto nel mercato. Dà errore "Error! Tipo sbagliato di file caricato, .....ex4 - Script.
La categoria del vostro prodotto - Esperti, il tipo di programma corretto per esso - Esperto" Ma è un Esperto! Dove devo scavare? Ho lottato per 2 giorni!
 
Vycheslav Vyrikov #:
Pomeriggio. Bene, potete consigliare un principiante, sto cercando di caricare un Expert Advisor sul mercato. Dà errore "Error! Tipo di file errato caricato, .....ex4 - Script.
La categoria del tuo prodotto - Esperti, il tipo di programma corretto per esso - Esperto" Ma è un Esperto! Dove devo scavare? Ho lottato per 2 giorni!

Scava verso i gestori standard.

Sono sicuro che hai start() lì, non OnStart().

Документация по MQL5: Обработка событий / OnStart
Документация по MQL5: Обработка событий / OnStart
  • www.mql5.com
OnStart - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko #:

Hai bisogno di un algoritmo che disegni delle linee ai prezzi calcolati.

Quando tutte le posizioni sono chiuse, devono essere cancellate.

double sumLots[2]=0,weight[2]=0;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;

   // тут всякие прочии фильтры

   DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера

   // расчёт общих позиций

   int type=OrderType();

   sumLots[type]+=OrderLots();

   weight[type]+=OrderLots()*OrderOpenPrice();

}

double avg[3]; // общии позиции

if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY]; 

if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL]; 

// совокупная позиция

int posType; // тип

double posPrice; // цена

double posLots; // объём

if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }

else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }

DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY

DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL

DrawPriceLevels(posType,posPrice); // уровни общей позиции

Nei nomi dei livelli orizzontali aggiungere il numero del biglietto. A volte (quando necessario) per controllare - se il biglietto non è nel mercato, allora tutti i livelli con il suo nome dovrebbero essere rimossi

 
Artyom Trishkin #:

Scava verso i gestori standard.

Sono sicuro che hai start() lì, non OnStart().

Artyom sei già stanco e hai iniziato tu stesso a fare inesattezze. Per l'esperto che Vyacheslav sta cercando di caricare, la funzione di gestione degli eventi dovrebbe essere OnTick()