Sì, all'inizio, il mio errore più comune finora è non mettere un punto e virgola dove dovrebbe essere. Mi dimentico solo di farlo. Poi mi siedo e penso: cosa non piace al programma in questa linea? Ora ho un problema con la chiamata di funzione esterna. L'esempio qui è 'Order Management - It's Easy'. Prima abbiamo Expert Advisor, poi la funzione (che in realtà mi interessa), e poi Expert Advisor con questa funzione inserita. Ho provato a farlo con il mio esempio, ma non ha funzionato. Poi ho provato gli esempi, descritti nell'articolo, e ho fallito di nuovo. Ho salvato la funzione e l'esperto in una cartella. Durante la compilazione di un Expert Advisor, l'errore 'OneOrderControl.mq4' - non può aprire il file di programma D:\Program Files\MetaTrader 4 Ukrsotsbank\experts\Test.mq4 (3, 1). Non capisco quale sia il problema finora.
Climber: Ho cercato di usare il mio esempio, ma non ci sono riuscito. Poi ho usato gli esempi dell'articolo e ho fallito di nuovo. Ho salvato la funzione e l'Expert Advisor nella stessa cartella.
Il file include (OneOrderControl.mq4) dovrebbe essere nella directory experts\include
Se la variabile Mu meno la variabile UD moltiplicata per il prezzo del punto è maggiore o uguale a Ask e allo stesso tempo la variabile _OrdersTotal non è uguale a 1, allora alla variabile Opn_B viene assegnato il valore true. Cioè, solo se queste due condizioni sono soddisfatte, alla variabile Opn_B viene assegnato il valore true. E se una virgola viene messa al posto di &&, allora true viene assegnato quando almeno una delle condizioni è soddisfatta.
Se la variabile Mu meno la variabile UD moltiplicata per il prezzo del punto è più o uguale a Ask e allo stesso tempo la variabile _OrdersTotal non è uguale a 1, allora alla variabile Opn_B viene assegnato il valore true. Cioè, solo se queste due condizioni sono soddisfatte, alla variabile Opn_B viene assegnato il valore true. E se una virgola è messa al posto di &&, allora true è assegnato quando almeno una delle condizioni è soddisfatta.
Tutto sommato, questo è corretto.
Ma l'espressione specificata nell'intestazione dell'istruzione if() è un booleano e non implica la possibilità di "virgola". Per implementare la seconda opzione che descrivi, è necessario mettere || (OR logico) invece di && (AND logico). In questo caso, l'intera espressione nell'intestazione (tra parentesi) sarà vera se almeno una delle espressioni separate da ||| è vera.
L'uso delle parentesi è permesso. Le parentesi hanno una priorità maggiore nei calcoli (come i normali calcoli aritmetici).
Ho cercato di usare il mio esempio, ma non ci sono riuscito. Poi ho usato gli esempi dell'articolo e ho fallito di nuovo. Ho salvato la funzione e l'Expert Advisor nella stessa cartella.
Grazie. Ora capire come trovare il prezzo massimo sulle ultime 40 barre.
Ora capire come trovare il prezzo massimo sulle ultime 40 barre.
Vedere il compito 26 in Tutorial - Variabili - Array.
Ora capire come trovare il prezzo massimo sulle ultime 40 barre.
Vedere il compito 26 in Tutorial - Variabili - Array.
Se la variabile Mu meno la variabile UD moltiplicata per il prezzo del punto è maggiore o uguale a Ask e allo stesso tempo la variabile _OrdersTotal non è uguale a 1, allora alla variabile Opn_B viene assegnato il valore true. Cioè, solo se queste due condizioni sono soddisfatte, alla variabile Opn_B viene assegnato il valore true. E se una virgola viene messa al posto di &&, allora true viene assegnato quando almeno una delle condizioni è soddisfatta.
Sto leggendo correttamente la condizione dell'if statement?
Se la variabile Mu meno la variabile UD moltiplicata per il prezzo del punto è più o uguale a Ask e allo stesso tempo la variabile _OrdersTotal non è uguale a 1, allora alla variabile Opn_B viene assegnato il valore true. Cioè, solo se queste due condizioni sono soddisfatte, alla variabile Opn_B viene assegnato il valore true. E se una virgola è messa al posto di &&, allora true è assegnato quando almeno una delle condizioni è soddisfatta.
Tutto sommato, questo è corretto.
Ma l'espressione specificata nell'intestazione dell'istruzione if() è un booleano e non implica la possibilità di "virgola". Per implementare la seconda opzione che descrivi, è necessario mettere || (OR logico) invece di && (AND logico). In questo caso, l'intera espressione nell'intestazione (tra parentesi) sarà vera se almeno una delle espressioni separate da ||| è vera.
L'uso delle parentesi è permesso. Le parentesi hanno una priorità maggiore nei calcoli (come i normali calcoli aritmetici).
L'altro giorno abbiamo lanciato la versione beta del libro online di Sergei Kovalev(SK.) sulla programmazione MQL4.
https://book.mql4.com/ru
Per ora funziona solo la versione russa, ma cercheremo di tradurla in inglese e cinese
Se avete dei commenti sul libro, fatecelo sapere.
Ho due computer diversi e diversi browser, ma le immagini su https://book.mql4.com/ru/metaeditor/compose non funzionano.
Su due diversi computer e con diversi browser, le immagini su https://book.mql4.com/ru/metaeditor/compose non si vedono.