Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 571

 
Artyom Trishkin:

Una volta c'era una domanda come questa:


Alexey Viktorov:

lotto = (valore_assoluto(profitto_ordine) + profitto desiderato) / (dimensione_standard_contratto * TR * punto)

Grazie, Artyom Trishkin.

Grazie, Alexey Viktorov.

 
Karputov Vladimir:
Capite la definizione stessa di "operazione asincrona"? Se lo fai, non ci dovrebbero essere domande.
Lo capisco molto bene! Ecco perché ho chiesto. Non ho intenzione di lottare con voi per la competenza in materia di piscio.
 

Colleghi, aiutateun programmatore principiante.

Ho provato a comporre un codice di funzione personalizzata, in modo che quando imposto il tempo nelle impostazioni nel solito formato "13:45" per tre sessioni di tempo, la mia funzione restituisca vero o falso. L'idea era di inserire prima la funzione in Expert. Controllerebbe il valore e, se fosse vero, potremmo scambiare e andare avanti.

Tutto sembrava andare bene, tutti i parametri restituiti sono stati controllati con Alert, in modo che tutto fosse chiaro in tutte le fasi, ma alla fine mi sono reso conto che devo averlo dichiarato in modo errato nella funzione Start, perché ha generato errore "wrong parameters count".

Il codice è lungo, vi darò i punti salienti:

--------------------------------

void OnTick()

{

bool TradingAllowed = false;

TradeTimeAllowed (TradingAllowed);

if (TradingAllowed = true) { Alert ("Buy 1 lot");}

else { Alert ("Trading is not allowed"); }

}

//+------------------------------------------------------------------+

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //c'è una funzione stessa. L'ho testata inserendola in OnTick tramite Alert. Emette vero o falso.

{ ....................}

---------------------

E il secondo problema è nella funzione stessa alla fine.

Ora è erroneamente collocato lì:

se (Trade_Session_1 = true) TradeTime_Ok = true;

se (Trade_Session_2 = true) TradeTime_Ok = true;

se (Trade_Session_3 = true) TradeTime_Ok = true;

ritorno(TradeTime_Ok);

// cioè il problema è "chi è ultimo, chi è prossimo". Se il primo periodo è vero o il secondo è vero, e il terzo è falso, ricorderà falso. Ma secondo la mia idea, se almeno uno di essi è vero, il valore finale è ancora vero.

Ho cercato di metterla in questo modo:

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // ma scrive errore come questo. Non so cosa non gli piaccia.

Un buon consiglio, per favore.


 

Il primo problema è stato risolto con l'aiuto delle persone gentili del filo vicino. La funzione viene chiamata correttamente e produce il valore richiesto.

Il secondo problema rimane:

E il secondo problema è nella funzione stessa alla fine.

Ora è scritto erroneamente lì:

se (Trade_Session_1 = true) TradeTime_Ok = true;

se (Trade_Session_2 = true) TradeTime_Ok = true;

se (Trade_Session_3 = true) TradeTime_Ok = true;

ritorno(TradeTime_Ok);

// cioè il problema è "chi è ultimo, chi è prossimo". Se il primo periodo è vero o il secondo è vero, e il terzo è falso, ricorderà falso. Ma secondo la mia idea, se almeno uno di essi è vero, il valore finale è ancora vero.

Ho cercato di metterla in questo modo:

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // ma scrive errore come questo. Non so cosa non gli piaccia.

Un buon consiglio, per favore.

 

Trasferito da

Andrey Koldorkin:

Colleghi, aiuto per un programmatore principiante.

Ho provato a mettere insieme un po' di codice per una funzione personalizzata per restituire vero o falso per tre sessioni di tempo, quando ho impostato il tempo nelle impostazioni nel formato familiare "13:45". L'idea era di inserire prima la funzione in Expert. Controllerebbe il valore e, se fosse vero, potremmo scambiare e andare avanti.

Tutto sembrava andare bene, tutti i parametri restituiti sono stati controllati con Alert, in modo che tutto fosse chiaro in tutte le fasi, ma alla fine mi sono reso conto che devo averlo dichiarato in modo errato nella funzione Start, perché ha generato errore "wrong parameters count".

Il codice è lungo, vi darò i punti salienti:

--------------------------------

void OnTick()

{

bool TradingAllowed = false;

TradeTimeAllowed (TradingAllowed);

if (TradingAllowed = true) { Alert ("Buy 1 lot");}

else { Alert ("Trading is not allowed"); }

}

//+------------------------------------------------------------------+

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //esiste una funzione. L'ho controllata inserendola in OnTick tramite Alert. Produce vero o falso.

{ ....................}

---------------------

E il secondo problema è nella funzione stessa alla fine.

Ora è erroneamente collocato lì:

se (Trade_Session_1 = true) TradeTime_Ok = true;

se (Trade_Session_2 = true) TradeTime_Ok = true;

se (Trade_Session_3 = true) TradeTime_Ok = true;

ritorno(TradeTime_Ok);

// cioè il problema è "chi è ultimo, chi è prossimo". Se il primo periodo è vero o il secondo è vero, e il terzo è falso, ricorderà falso. Ma secondo la mia idea, se almeno uno di essi è vero, il valore finale è ancora vero.

Ho cercato di metterla in questo modo:

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // ma scrive errore come questo. Non so cosa non gli piaccia.

Per favore, aiutatemi.

 

Trasferito da

<br / translate="no"> Andrey Koldorkin:


Sergei Vladimirov:

1) La funzione richiede 6 parametri stringa e tu la chiami con un parametro booleano. 2) Il segno di uguale è "==", non "=".

 
Sì, tutto risolto. Gli errori sono spariti. Grazie.
 

Trasferito da

LeonidB:

Aiuta a risolvere un problema!

Le impostazioni della categoria delle notizie non vengono salvate. Ripristina le impostazioni dopo aver riavviato il terminale. Reinstallare non aiuta, eseguire come amministratore non aiuta. Windpws 10. Ho trovato tutti i file responsabili della configurazione, le date delle modifiche coincidono sempre con la data di spegnimento del terminale, cioè i file vengono sovrascritti. Per quanto ho capito, i seguenti file sono responsabili della configurazione: terminal.ini, settings.ini, hotkeys.ini, common.ini (situato nella cartella config), news.dat (situato nella cartella news).

Inoltre, la seguente impostazione non viene salvata: Show - Last Price Line. Questo punto non è critico rispetto alle impostazioni delle notizie, ma penso che siano anelli della stessa catena.


 

Buon pomeriggio a tutti, postato su quattro, spero di ricevere presto una risposta.... Ragazzi, per favore, guardate cosa c'è che non va. Sembra essere il codice dell'indicatore in due righe, ma non vuole funzionare in tempo reale :-(

Ecco un link a un post con tre immagini....

https://forum.mql4.com/ru/56236/page1041

Grazie!!!!

Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
 
Ciao, non vedo l'ora di discutere questo problema con te. Ho scritto un EA in MT5 che ho voluto usare per cercare automaticamente i pattern necessari e aprire posizioni manualmente. Cioè non ci sono funzioni di trading nell'EA. Il mio problema è che non posso installare questo EA su un grafico. Non ci sono chiamate di indicatori nell'EA. Tutti gli indicatori sono scritti nel programma. L'ho compilato e l'ho eseguito nel tester di strategia. Non ci sono stati problemi. Ho appena messo l'EA sul grafico e gli ho permesso di fare trading sullo schermo, nelle impostazioni e nella finestra EA che appare. Invece della faccina sorridente sul grafico, l'icona dell'Expert Advisor appare sul grafico dei prezzi e un cerchio verde con un triangolo bianco al suo interno. Ho provato questa procedura diverse volte e ottengo sempre gli stessi risultati. Ho cambiato periodo sul grafico del prezzo, il messaggio di OnDeinit() appare sul monitor, cioè una candela viene elaborata nel programma e il lavoro si ferma.

Ho dato un'occhiata al diario di bordo:

- Uno dei tentativi di installare un EA è risultato in un messaggio di cambiamento di profilo;

- In tutti gli altri tentativi l'EA viene caricato senza problemi.

Lavoravo con i Profili: aumentavo il numero di Profili, impostavo diversi grafici su ogni Profilo. Se c'era qualcosa di sbagliato lì, purtroppo non lo so. Non so cosa deve essere rotto perché il programma mandi un messaggio di cambio di profilo. Anche se è possibile che il fallimento sia dovuto a qualche altra ragione. Non mi è chiaro.

Per motivi di test, ho creato un nuovo EA (template) oggi e non ho scritto nulla nelle funzioni OnInit(), OnDeinit(const int reason), OnTick() e ho provato a mettere questo EA sul grafico e permettere il trading.

Ho la stessa situazione di prima.

Per favore, aiutatemi a capire questa situazione. Grazie !!!!!!

Motivazione: