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

Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Va bene che si dica
niente, il thread è per MT4, quindi non ci fate caso
OK, datti da fare, è noioso qui
Saluti a tutti. Buona fortuna nella vita e profitto nel lavoro.
Sto chiedendo aiuto (inaspettatamente, eh? :) ).
In Mql sono uno zerobom, 2 giorni "nel soggetto". Se l'EA reale mi costringe a usare il trading automatico, sto cercando di scrivere (raccogliendo in tempo reale da diverse parti) il gufo per il mio EA piatto e naturalmente mi sto stancando :). Sto cercando di risolvere un altro problema da circa 10 ore e ancora non ci sono arrivato. Se qualcuno può aiutare con un consiglio o un esempio sarà estremamente grato (verbalmente e per iscritto, e soprattutto sotto la doccia).
In generale... C'è TC, usato con successo da me per molto tempo. Sulle condizioni di scambio sullo stesso strumento può ordini di mercato multidirezionali (non in sospeso). Alla posizione abbassata può essere riempito ad un segnale di trading, a condizione che la posizione è scesa di almeno X pips, a volte succede e fare un'aggiunta al riempimento (alle stesse condizioni (segnale di trading + dimensione del drawdown)). Il problema (attuale) è nell'apertura di posizioni aggiuntive, cioè... come controllare e restituire il valore della perdita su una posizione lunga. Seguendo l'esempiodi https://www.mql5.com/ru/forum/117061, ho modificato il codice per assegnare ad ogni posizione il proprio Magik, ma questo è tutto. Come selezionare esattamente una posizione che si è seduta e restituire il suo valore di perdita.... :(.
"il mio" codice per aprire le transazioni.
//-----------------
if (NumberOfPositions(Symbol(),OP_BUY, Magic)<1)
{
se (le mie condizioni di ingresso)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); altrimenti TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); altrimenti SL = 0;
ticket=OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),5,SL,TP, "BUY",Magic,0,Blue);
if(ticket < 0) { Print("Error while opening BUY order #", GetLastError());}
}}
if(NumberOfPositions(Symbol(),OP_SELL, Magic)<1)
{
se (le mie condizioni di ingresso)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); altrimenti TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); altrimenti SL = 0;
ticket=OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),5,SL,TP, "SELL",Magic,0,Red);
if(ticket < 0) { Print("Error opening SELL order #", GetLastError());}
}}
//---------------
È prevista l'apertura di altri ordini con il seguente codice
//---------------
if (NumberOfPositions(Symbol(),OP_BUY, Magic)==1 && NumberOfPositions(Symbol(),OP_BUY, Magic_2)<1)
{
if (my entry conditions && GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic)>= LEVEL_1)
{
ticket=OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),5,SL,TP, "Extra Buy",Magic_2,0,Blue);
if(ticket < 0) { Print("Errore nell'apertura dell'ordine BUY #", GetLastError()); }
} }
//---------------
Ed è qui che mi sono bloccato :). Cosa usare al posto di GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic). Penso di dover usare Drawdown_level(Symbol(),OP_BUY,Magic) ma come ottenerlo...
Aiutate per favore, siate amici.
Z.U. Se si consiglia, si prega di tenere presente che io sono ancora nubyara che non troppo pigro per inviarmi un po' più dettagli, sai, come se: FOREST THERE, allora non dimenticate di specificare la direzione <------ || ------>.
Grazie per la vostra attenzione :).
Niente, il thread è per MT4, quindi non ci fate caso.
Ok, datti da fare, è noioso qui
Dimmi dov'è un ramo simile per MT5, lo chiederò lì...
Dimmi dov'è un thread simile per MT5, lo chiederò lì...
Va bene specificare
In MT4 la chiamata della funzione da Indicator va senza errori e funziona come necessario(int handle=iEnvelopes(Symbol(), tf, period, method, shift, price, Deviation(kanal), buff);) Ho pensato che potrebbe essere lo stesso in MT5.
Per favore, consigliate come farlo correttamente?
In MT4 la chiamata della funzione da Indicator va senza errori e funziona come necessario(int handle=iEnvelopes(Symbol(), tf, period, method, shift, price, Deviation(kanal), buff);) Ho pensato che potrebbe essere lo stesso in MT5.
Puoi dirmi come farlo correttamente?
Quindi è impossibile ottenere i dati di Envelopes in mql4
Ecco il codice di MT4
Tutto funziona perfettamente. Vorrei lo stesso in MT5
Ecco il codice di MT4
Tutto funziona perfettamente. Vorrei lo stesso in MT5
Beh, questo perché è un codice diverso e funzionerà.
Corretto il codice MT5 per inviare dati all'indicatore:
Ma l'errore è lo stesso.
Ecco il codice di MT4
Tutto funziona perfettamente. Vorrei lo stesso in MT5
Attenzione alle mani:
Nel mio post precedente questo è evidenziato nel tuo codice
e nel codice di questo, il messaggio citato è una dichiarazione di funzione. Anche evidenziato.
E questo
Chiamare una funzione utente che esiste. Anche se questo metodo di programmazione è inaccettabile per me, è comunque comprensibile. Ma come descrivere l'errore in quel codice, sono in perdita.