Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 799
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
Grazie! Ho cercato e non l'ho trovato...
Poi la prossima domanda, diciamo che il passo è 25, allora come organizzare l'arrotondamento a un numero divisibile per 25, forse c'è una funzione?
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice
Grazie, ma non sto usando la libreria commerciale standard.
Nessun codice, nessun commento.
Sì, è strano. Ho allegato il file, ma non l'ho controllato. Colpa mia. Ora sto allegando sia il codice che l'estratto di codice dove il tester dà una linea con [Invalid stops]. Voglio capire come funziona la struttura di MqlTradeRequest quando si modifica la posizione. Nel mio caso è quando si cambia la fermata del SAR. Non riesco a sbarazzarmi del messaggio [Invalid stops] del tester. Strumento di giunzione RTS.
Sì, è strano. Ho allegato il file, ma non l'ho controllato. Colpa mia. Ora sto allegando sia il codice che un estratto di codice dove il tester dà una linea con [Invalid stops]. Voglio capire come funziona la struttura di MqlTradeRequest quando si modifica la posizione. Nel mio caso è quando si cambia la fermata del SAR. Non riesco a sbarazzarmi del messaggio [Invalid stops] del tester. Strumento di giunzione RTS.
Questo non è quel frammento di codice dove dovremmo cercare un errore, a prima vista. È solo la tripla selezione di una stessa posizione che mi preoccupa. È ridondante.
Hai un errore nelle fermate errate, dovresti probabilmente iniziare la tua ricerca dal luogo in cui queste fermate sono calcolate.
Sì, è strano. Ho allegato il file, ma non l'ho controllato. Colpa mia. Ora sto allegando sia il codice che un estratto di codice dove il tester dà una linea con [Invalid stops]. Voglio capire come funziona la struttura di MqlTradeRequest quando si modifica la posizione. Nel mio caso è quando si cambia la fermata del SAR. Non riesco a sbarazzarmi del messaggio [Invalid stops] del tester. Giunzione RTS.
Per una piena comprensione è necessario specificare che tipo di account hadge o netting
Se il tipo di conto è statoge
Avete scelto una posizione per il simbolo, ma potrebbe non essere esattamente quello che volevate vedere...
Ma ora abbiamo scelto la posizione esatta che volevamo.
Poi, prova di nuovo a scegliere la posizione giusta
Di nuovo, la probabilità di aver scelto la posizione sbagliata è molto alta
Per controllare come si comporta la funzione OrderSend() in questo caso, dovreste farlo, ma è meglio farlo come dovrebbe essere e se l'errore non scompare, stampare non solo il codice di errore, ma anche il ticket di posizione, il prezzo della posizione, il prezzo del nuovo stop e take. Questo è il minimo.
Per una piena comprensione è necessario specificare che tipo di account hadge o netting
Grazie per i vostri commenti. Il tipo di conto è il netting. Giunzione RTS. È questa la parte difficile? Una posizione su un simbolo. Puoi scegliere come vuoi, arriverai comunque a quella posizione. Questi non sono ordini pendenti, vero? Ecco perché non capisco ancora di più - cosa c'è che non va? Ho provato tutte le varianti.
Grazie per i commenti. Netting del tipo di conto. Strumento di giunzione RTS. È questa la parte difficile? Una posizione su un simbolo. Puoi scegliere come vuoi, arriverai comunque a quella posizione. Questi non sono ordini pendenti, vero? Ecco perché non capisco ancora di più - cosa c'è che non va? Ho provato tutte le varianti.
Forum sul trading, sistemi di trading automatico e test di strategia
Domande dai principianti MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.11.22 09:29
Per controllare come si comporta la funzione OrderSend() in questo caso, è necessario farlo e controllare, ma è meglio fare come dovrebbe e se l'errore non è andato stampare non solo il codice di errore, ma anche il biglietto di posizione, prezzo di posizione, prezzo del nuovo stop e prendere. Questo è il minimo.
Ecco perché non capisco ancora di più - COSA c'è che non va? Ho provato tutte le opzioni.
Inserisci questa linea dove si verifica l'errore
Print(ToString(request) + ToString(result));
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Peculiarità del linguaggio mql5, sottigliezze e trucchi
fxsaber, 2017.02.25 16:27
Tradurre le strutture MqlTrade in una stringa#define TOSTRING2(A) #A + " = " + EnumToString(A) + " (" + (string)(A) + ")\n"
string ToString( const MqlTradeTransaction &Trans )
{
return(TOSTRING(Trans.deal) + TOSTRING(Trans.order) + TOSTRING(Trans.symbol) +
TOSTRING2(Trans.type) + TOSTRING2(Trans.order_type) + TOSTRING2(Trans.order_state) +
TOSTRING2(Trans.deal_type) + TOSTRING2(Trans.time_type) +
TOSTRING(Trans.time_expiration) + TOSTRING(Trans.price) + TOSTRING(Trans.price_trigger) +
TOSTRING(Trans.price_sl) + TOSTRING(Trans.price_tp) + TOSTRING(Trans.volume) +
TOSTRING(Trans.position) + TOSTRING(Trans.position_by));
}
string ToString( const MqlTradeRequest &Request )
{
return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) + TOSTRING(Request.tp) +
TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
TOSTRING(Request.position) + TOSTRING(Request.position_by));
}
string ToString( const MqlTradeResult &Result )
{
return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
TOSTRING(Result.retcode_external));
}
#undef TOSTRING
#undef TOSTRING2
Inserisci questa linea dove si verifica l'errore
Incollato. Ecco il risultato del tester:
2017.11.22 18:22:51.127 2016.11.09 12:00:00 exchange buy 1.00 RTS Splice at 98080 sl: 94130 (98070 / 98080 / 98070)
2017.11.22 18:22:51.127 2016.11.09 12:00:00 deal #4 buy 1.00 RTS Splice at 98080 done (based on order #4)
2017.11.22 18:22:51.127 2016.11.09 12:00:00 deal performed [#4 buy 1.00 RTS Splice at 98080]
2017.11.22 18:22:51.127 2016.11.09 12:00:00 ordine eseguito comprare 1,00 a 98080 [#4 comprare 1,00 RTS Splice a 98080]
2017.11.22 18:22:53.561 2016.11.09 14:05:00:00 failed modify #4 buy 1.00 RTS Splice sl: 94130, tp: 0 -> sl: 94316, tp: 0 [Stop non valido]
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.action = TRADE_ACTION_SLTP (6)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.magic = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.order = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.symbol = RTS Splice
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.volume = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.price = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.stoplimit = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Richiesta.sl = 94316.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.tp = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.deviation = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type = ORDER_TYPE_BUY (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type_filling = ORDER_FILLING_FOK (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type_time = ORDER_TIME_GTC (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.expiration = 1970.01.01 00:00:00
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.comment =
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.position = 4
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.position_by = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.retcode = 10016
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.deal = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.ordine = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.volume = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.prezzo = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.offerta = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.ask = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Result.comment = Invalid stops
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Result.request_id = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Risultato.retcode_external = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Allarme: errore di modifica della posizione da parte di TP e codice errore SL: 4756
Mettilo dentro. Ecco il risultato del tester:
Modalità server e tester?