
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
Sei partito con il piede sbagliato. Hai capito tutto nel codice? Tutti gli operatori, le parole chiave?
Controllare la domanda sul codice:
Cosa significano queste linee?
Questi erano i miei commenti sulla sceneggiatura:
/* Andando avanti. Dopo aver inviato le richieste al server commerciale, abbiamo bisogno di sapere se un ordine pendente è stato impostato
o no. Per fare questo, usiamo la funzione OrderSend che è progettata per
operazioni commerciali inviando richieste al server commerciale. Se l'invio di una richiesta a
fallisce (un punto esclamativo davanti a qualsiasi funzione indica un risultato negativo della sua esecuzione
), allora viene emesso un messaggio con un codice di errore nel seguente formato: "OrderSend error %d"
e GetLastError(). Cerchiamo di capire cos'è "OrderSend error %d" e cos'è GetLastError().
Notate che "OrderSend error %d" è tra virgolette. Questo significa che
stamperà il testo con la traduzione letterale "OrderSend error %d". Ora cerchiamo di capire cosa significa
%d. Nella sezione PrintFormat del MQL5 Reference, troviamo: "Se una stringa di formato è seguita da più parametri,
, questa stringa deve contenere specifiche di formato che definiscono il formato di uscita di questi parametri.
Una specifica di formato inizia sempre con un segno di percentuale (%)". Cos'è un d? Nella stessa sezione
appena sotto troviamo: "Tipo d - specifica il numero minimo di cifre da emettere. Se il numero di cifre in
è inferiore alla precisione specificata, il valore di uscita è riempito di zeri a sinistra.
Il valore di uscita non viene troncato se il numero di cifre da emettere è maggiore della precisione specificata. Con questo
abbiamo risolto, ora abbiamo bisogno di capire cos'è GetLastError(). Sempre guardando nel libro di riferimento: "GetLastError()
restituisce il contenuto della variabile di sistema _LastError, cioè la variabile in cui è memorizzato
il valore dell'ultimo errore che si è verificato durante l'esecuzione del programma mql5.
Saluti, Vladimir.
Quindi non l'ho ancora capito e c'è del lavoro da fare.
Saluti, Vladimir.
Di nuovo, iniziate con la descrizione di ciò che fa il vostro codice. Questo script mette lo SL e il TP sulle posizioni. Dato che non sappiamo se ci sono, assumiamo che le posizioni ci siano, e ci sono entrambe (conto hedge). La condizione di collocare gli stop renderà sempre vero.... Quindi è così. Lavorare attraverso il codice fino alla fine. ))))
E cercate di capire ogni riga del codice. Fin dall'inizio.
Questa condizione non è affatto necessaria. Che ruolo ha? Puoi spiegare?
Volevo impostare una condizione nascosta per impostare gli ordini pendenti Buy Stop e Sell Stop.
Saluti, Vladimir.
Controllato qualche altra volta - il compilatore non dà nulla.
Saluti, Vladimir.
E perché dovrebbe produrre qualcosa? Non conosci le macro, non sai come lavorarci, ma le usi, quindi ti aspetti qualche errore o almeno un avvertimento da loro. Se aveste lanciato almeno una volta il vostro script sulla demo e l'aveste eseguito in tutte le modalità, avreste visto che non funziona. Ma tu vai oltre. Si aggiunge uno stop-loss, un take-profit, e sulla riva si dice: "Fermate la macchina!
Di nuovo, iniziate a descrivere cosa fa il vostro codice. Questo script mette uno SL e un TP sulle posizioni che avete piazzato. Dato che non sappiamo se ci sono, supponiamo che ci siano delle posizioni, e ci sono entrambe (conto hedge). Condizione di collocamento delle fermate farà sempre vero.... Quindi è così. Lavorare attraverso il codice fino alla fine. ))))
E cercate di capire ogni riga del codice. Fin dall'inizio.
Grazie per il consiglio di controllare se ci sono posizioni aperte all'inizio.
Saluti, Vladimir.
Volevo impostare una condizione nascosta per impostare gli ordini pendenti Buy Stop e Sell Stop.
Sinceramente, Vladimir.
Ditemi, scrivere una macro per questo, è l'unico modo per impostare una tale condizione? Le condizioni, se ho capito bene, sono impostate solo dalle macro? O è possibile farlo in un altro modo? E se c'è un altro modo, perché ha scelto questa macro? Ci sarà stata qualche necessità? Ma cos'era?
Grazie per il consiglio di controllare se ci sono posizioni aperte prima.
Saluti, Vladimir.
Scrivere una macro per questo è l'unico modo per impostare questa condizione? Da quanto ho capito, le condizioni sono impostate solo dalle macro? O c'è qualche altro modo? E se c'è un altro modo, perché ha scelto la macro? Ci sarà stata qualche necessità? Ma cos'era?
No, non c'era nessuna necessità, ho semplicemente trovato #define quando studiavo i modificatori e ho deciso di provarlo nello script.
Sinceramente, Vladimir.
Volevo impostare una condizione nascosta per impostare gli ordini pendenti Buy Stop e Sell Stop.
Saluti, Vladimir.
... Se per una volta eseguissi il tuo script su una demo e lo eseguissi in tutte le modalità, vedresti che non funziona. Ma tu stai facendo un passo avanti. Aggiungete uno stop loss e un take profit, e la riva sta già gridando: "Fermate la macchina!".
Vasiliy, ho eseguito lo script più di una volta e tutte le modalità funzionano, cioè, ho messo due ordini pendenti Buy Stop e Sell Stop alla distanza che ho specificato. Stop Loss e Take Profit sono anche impostati alla distanza necessaria. Gli ordini funzionano. Vorrei allegare qui uno screenshot.
Saluti, Vladimir.