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
MarketInfo(Symbol(),MODE_MARGININIT) = SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)
Cosa corrisponde allora a MODE_MARGINREQUIRED? O altrimenti, come faccio a sapere quanti soldi liberi mi servono per aprire 1 lotto per comprare?
In Moving Average.mq5 Expert Advisor dei creatori di mql5, i lotti sono calcolati in questo modo
Perché MaximumRisk è così piccolo (0,02%) e diviso per 1000 nel calcolo dei lotti? Cosa rappresenta questo 1000? Forse 1000 = fondi disponibili necessari per comprare 1 lotto moltiplicato per 100% (per convertire lo 0,02% in una frazione di 0,0002)? Cioè, i fondi disponibili per l'acquisto di 1 lotto sono $10 ($10x100%=1000). Penso che sia nella giusta direzione?
E un'altra domanda. C'è un limite al numero massimo di ordini aperti?
Cosa corrisponde allora a MODE_MARGINREQUIRED? O altrimenti come faccio a sapere la quantità di fondi disponibili necessari per aprire 1 lotto per comprare?
E un'altra domanda. C'è un limite al numero massimo di ordini aperti?
Mi sono posto questa domanda.
Ecco la risposta degli sviluppatori:
Vedere
SIMBOLO_SCAMBIO_DIMENSIONE_CONTRATTO
Dimensione del contratto commerciale
doppio
и
MARGINE_DI_VALUTA DEL SIMBOLO
Valuta in cui viene calcolato il margine
stringa
Da quanto ho capito, dovrete calcolarlo voi stessi
gpwr:
In Moving Average.mq5 Expert Advisor dei creatori di mql5, i lotti sono calcolati in questo modo
Perché MaximumRisk è così piccolo (0,02%) e diviso per 1000 nel calcolo dei lotti? Cosa rappresenta questo 1000? Forse 1000 = fondi disponibili necessari per comprare 1 lotto moltiplicato per 100% (per convertire lo 0,02% in una frazione di 0,0002)? Cioè, i fondi disponibili per l'acquisto di 1 lotto sono $10 ($10x100%=1000). Penso che sia nella giusta direzione?
E un'altra domanda. C'è un limite al numero massimo di ordini aperti?
Questa linea calcola il rischio come il 2% dei fondi disponibili, se ho capito bene. Perché dividono questo importo per 1000?
Ma se ho capito bene, allora con un deposito (fondi liberi) di $20.000, l'Expert Advisor raccomanda di aprire non più del 2% di questo importo ($400).
Dividendo questo importo per 1.000 otterremo logicamente 0,4 lotto...
gpwr:
C'è un limite al numero massimo di ordini aperti?
Questa linea calcola il rischio come il 2% della quantità di fondi disponibili, se ho capito bene. Il motivo per cui questo importo è diviso per 1.000 è a discrezione degli sviluppatori.
Ma se ho capito bene, allora con un deposito (fondi liberi) di $ 20.000, l'Expert Advisor raccomanda di aprire non più del 2% di questo importo ($ 400).
Dividendo questo importo per 1.000 otterremo logicamente 0,4 lotto...
Ora ho capito. C'è un errore in Moving Average.mq5. Invece di
Dovrebbe essere
Allora la divisione per 1000 nel calcolo dei lotti è chiara: $100.000(dimensione del lotto)/100(leva) = 1000. Tuttavia, gli sviluppatori di mql5 non devono mostrare un tale esempio di Expert Advisor. Dovrebbe essere cambiato
A
O meglio ancora
È un peccato che MODE_MARGINREQUIRED sia stato perso, però. Forse gli sviluppatori ripristineranno questo parametro per ridurre il numero di calcoli.
I nomi brevi sono sempre stati usati solo per la visualizzazione nella sottofinestra dell'indicatore
Non so se sto mettendo le mie segnalazioni di bug nel posto giusto. Se non è così, per favore correggetemi.
Quando ho testato il mio EA, ho creato appositamente una situazione del genere per vedere se il tester determina correttamente il margine. Quindi, il deposito di 100 dollari. Facciamo trading su EURUSD. La dimensione minima del lotto è 0,1. Il seguente codice per il calcolo dei lotti si trova nell'Expert Advisor
Il tester genera questi errori
2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19242]
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.24, NewFreeMargin: -19.24
2010.06.08 22:28:57 Core 1 1000 100
2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19180]
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.18, NewFreeMargin: -19.18
2010.06.08 22:28:57 Core 1 1000 100
2010.06.08 22:28:57 Core 1 no enough money [instant buy 0.10 EURUSD at 1.19362]
2010.06.08 22:28:57 Core 1 PrevBalance: 100.00, PrevEquity 100.00, PrevMargin: 0.00, NewMargin: 119.36, NewFreeMargin: -19.36
2010.06.08 22:28:57 Core 1 1000 100
A giudicare da questi messaggi, il margine libero necessario per comprare 1 lotto, LotRqdMgn, è uguale a 1000, il che sembra essere corretto. FreeMargin=100. Moltiplica 0,1 lotto per 1000 e ottieni 100. Significa che abbiamo abbastanza fondi per aprire il 1° lotto. Ma il tester riferisce che non abbiamo abbastanza fondi. Dov'è l'errore?
Sulla base di questi messaggi, il margine libero richiesto per comprare 1 lotto, LotRqdMgn, è 1000, che sembra corretto. FreeMargin=100. Moltiplica 0,1 lotto per 1000 e ottieni 100. Significa che abbiamo abbastanza fondi per aprire il 1° lotto. Ma il tester riferisce che non abbiamo abbastanza fondi. Dov'è l'errore?
L'errore è che hai dimenticato la valuta del margine nei tuoi calcoli. Saldo = 100 USD e margine richiesto = 100 EUR (119 USD).
Ecco perché non si può fare una transazione - tutto è corretto.
L'errore è che hai dimenticato la valuta del margine nei tuoi calcoli. Saldo = 100 USD e margine richiesto = 100 EUR (119 USD).
Ecco perché non è possibile fare una transazione - tutto è corretto.
Grazie Renat. Ho capito il mio errore. Ho cambiato la formula per il calcolo di LotRqdMgn e ora tutto funziona correttamente.
Una nuova parola in biblioteconomia, o l'incredibile accanto ad essa...
Allora, ho creato un Expert Advisor che usa la libreria, l'ho controllato e tutto funziona. Ho fatto un archivio con l'Expert Advisor, questa libreria e alcuni file MQL5 e MQH. Ho dato l'archivio all'applicatore/sviluppatore per i test.
Questo andrebbe bene, ma ho deciso di eseguire i test su un altro terminale. Così ho spacchettato l'archivio e ho deciso di allegare l'Expert Advisor al grafico.
E nel diario terminale sono scritte queste due righe:
2010.06.10 09:54:51 PM Esperti MechanicalTrading-Infinity-2010 (EURUSD,Daily)
2010.06.10 09:54:51 Esperti Caricamento di MechanicalTrading-Infinity-2010 (EURUSD,Daily) fallito
Ho iniziato a cercare cosa e come funziona (o meglio, non funziona) e ho trovato un fatto sorprendente - Terminal vede la libreria compilata nella directory (come *.ex5), ma persistentemente la "affonda", il che non è molto buono, come si capisce...
Dopo aver provato molte possibili ragioni per tale comportamento, ho deciso di mettere il file originale (come *.mq5) nella cartella con la libreria. Ho provato ad aggiungere un EA al grafico - oh mio Dio, tutto funziona.
Nel corso del gioco, sono sorte diverse domande:
1. Perché l'Expert Advisor non funziona se la libreria è rappresentata solo come .ex5?
2. Perché il terminale si ostina a cancellare questo file dalla directory?
3. Perché il log del terminale non ha un commento chiaro su tutto questo?
4. Perché la documentazione non dice che questo comportamento è possibile?
E infine la quinta e ultima domanda - come faccio ad affrontare tutto questo e cosa sto facendo di sbagliato (forse il terminale manca un file EX5 e cerca qualcosa, per esempio un file header o la libreria stessa)?
PS
A proposito, ho lo stesso bug con Expert Advisors, cancellazione ostinata del file *.ex5... :(