Ho riscontrato un problema - quando si prova ad un certo punto, per ragioni sconosciute, appare l'errore "fermate non valide", ma le fermate sono corrette.
Forux: Incontrata con un problema - quando si prova ad un certo punto per ragioni sconosciute, appare un errore "fermate non valide", ma le fermate sono corrette.
Questo è quello che abbiamo ottenuto (iniziato il 2010.05.01):
Quale potrebbe essere il problema? (l'80% del deposito era gratuito all'epoca)
Il messaggio di errore appare in risposta alla modifica della posizione. Allo stesso tempo, non c'è nessun controllo della distanza ammissibile dei livelli sl/tp dal prezzo corrente nel codice. Può succedere che il prezzo corrente del mercato si avvicini ai livelli di sl o tp a una distanza inferiore a quella consentita dal server. Guarda nel manuale ORDER_STOPS_LEVEL
Yedelkin: Il messaggio di errore appare in risposta alla modifica della posizione. Il codice non controlla la distanza ammissibile dei livelli sl/tp dal prezzo corrente. Può succedere che durante l'elaborazione di due richieste di trading, il prezzo corrente del mercato si sia spostato più vicino ai livelli sl o tp rispetto alla distanza consentita dal server. Guarda nel manuale ORDER_STOPS_LEVEL
Ho apportato modifiche al codice per controllare:
price = SymbolInfoDouble(_Symbol, isBuy ? SYMBOL_ASK : SYMBOL_BID);
Print(" --- Can not modify order --- error = " + GetLastError() + " order = " + order + " price = " + price);
come risultato la linea di errore non è cambiata (cioè il prezzo non è cambiato). E probabilmente non potrebbe, sono due anni e mezzo di test su minuti, sulla storia alpari (98% di qualità della storia).
Sembra più un errore della MetaTrader stessa, perché prima stava succedendo la stessa cosa, ma non c'era nessun errore.
Yedelkin: Ну а проверку на допустимый отступ тоже сделали?
Yedelkin: Avete controllato anche la rientranza ammissibile?
La distanza ammissibile nel test è 0. E il prezzo non è cambiato, dopo l'errore è lo stesso del prezzo al quale è stato creato l'ordine, prima della modifica.
price = SymbolInfoDouble(_Symbol, isBuy ? SYMBOL_ASK : SYMBOL_BID);
Print("SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) == " + SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL));
Print(" --- Can not modify order --- error = " + GetLastError() + " isBuy = " + isBuy + " order = " + order + " price = " + price);
Log
2013.01.1614:32:28 Core 12011.03.1821:59:00 --- Can not modify order --- error = 4756 isBuy = false order = 4720 price = 1.417952013.01.1614:32:28 Core 12011.03.1821:59:00SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) == 02013.01.1614:32:28 Core 12011.03.1821:59:00 failed modify sell 0.10 EURUSD sl: 0.00000, tp: 0.00000 -> sl: 1.42095, tp: 1.41495 [Invalid stops]
2013.01.1614:32:28 Core 12011.03.1821:59:00 order performed sell 0.10 at 1.41795 [#4720 sell 0.10 EURUSD at 1.41795]2013.01.1614:32:28 Core 12011.03.1821:59:00 deal performed [#4720 sell 0.10 EURUSD at 1.41795]2013.01.1614:32:28 Core 12011.03.1821:59:00 deal #4720 sell 0.10 EURUSD at 1.41795 done (based on order #4720)2013.01.1614:32:28 Core 12011.03.1821:59:00 exchange sell 0.10 EURUSD at 1.41795 (1.41795 / 1.42399 / 1.41795)
...
Forux: E il prezzo non è cambiato, dopo l'errore è lo stesso del prezzo al quale è stato creato l'ordine prima della modifica.
Il prezzo stesso (in generale) può essere inizialmente più vicino ai livelli di quanto il server permetta attualmente. Perciò è sempre consigliabile controllare tale condizione.
Forux: La distanza ammissibile nel test è 0.
Sì, ora è chiaro che il controllo dell'indentazione non risolve il problema in questo caso. Ho capito bene che i livelli sl/tp per una posizione Sell sono impostati in base al prezzo Bid?
Il prezzo stesso (in generale) può essere inizialmente più vicino ai livelli di quanto il server permetta attualmente. Perciò è sempre consigliabile controllare questa condizione.
Sì, ora è chiaro che il controllo dell'indentazione non risolve il problema in questo caso. Ho capito bene che i livelli sl/tp per le posizioni Sell sono impostati sulla base del prezzo Bid?
Sì, e l'entrata e l'uscita sono o all'Ask o al Bid, a seconda del tipo di ordine.
Forux: Sì, e l'entrata e l'uscita sono per Ask o Bid, a seconda del tipo di ordine.
Ho capito bene che i livelli sl/tp per una posizione Sell sono impostati in base alprezzo Bid? Se non è difficile, stampa gli attuali Ask, Bid, SL e TP per l'area problematica
Yedelkin: Ho capito bene che i livelli sl/tp per una posizione Sell sono impostati in base alprezzo Bid? Se non è difficile, stampa gli attuali Ask, Bid, SL e TP per l'area problematica.
2013.01.1615:55:57 Core 12011.03.1821:59:00 --- Can not modify order --- error = 4756 isBuy = false order = 4720 price = 1.417952013.01.1615:55:57 Core 12011.03.1821:59:00 TP == 1.414952013.01.1615:55:57 Core 12011.03.1821:59:00 SL == 1.420952013.01.1615:55:57 Core 12011.03.1821:59:00 BID == 1.417952013.01.1615:55:57 Core 12011.03.1821:59:00 ASK == 1.423992013.01.1615:55:57 Core 12011.03.1821:59:00SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) == 02013.01.1615:55:57 Core 12011.03.1821:59:00 failed modify sell 0.10 EURUSD sl: 0.00000, tp: 0.00000 -> sl: 1.42095, tp: 1.41495 [Invalid stops]
2013.01.1615:55:57 Core 12011.03.1821:59:00 order performed sell 0.10 at 1.41795 [#4720 sell 0.10 EURUSD at 1.41795]2013.01.1615:55:57 Core 12011.03.1821:59:00 deal performed [#4720 sell 0.10 EURUSD at 1.41795]2013.01.1615:55:57 Core 12011.03.1821:59:00 deal #4720 sell 0.10 EURUSD at 1.41795 done (based on order #4720)2013.01.1615:55:57 Core 12011.03.1821:59:00 exchange sell 0.10 EURUSD at 1.41795 (1.41795 / 1.42399 / 1.41795)
...
Ho riscontrato un problema - quando si prova ad un certo punto, per ragioni sconosciute, appare l'errore "fermate non valide", ma le fermate sono corrette.
L'algoritmo è banale - metti un ordine
quando è chiuso, ripetere la procedura
Come risultato, ho ottenuto questi risultati (ho iniziato nel 2010.05.01):
Quale potrebbe essere il problema? (all'epoca l'80% del mio deposito era gratuito)
Questo è quello che abbiamo ottenuto (iniziato il 2010.05.01):
Quale potrebbe essere il problema? (l'80% del deposito era gratuito all'epoca)
Il messaggio di errore appare in risposta alla modifica della posizione. Il codice non controlla la distanza ammissibile dei livelli sl/tp dal prezzo corrente. Può succedere che durante l'elaborazione di due richieste di trading, il prezzo corrente del mercato si sia spostato più vicino ai livelli sl o tp rispetto alla distanza consentita dal server. Guarda nel manuale ORDER_STOPS_LEVEL
Ho apportato modifiche al codice per controllare:
come risultato la linea di errore non è cambiata (cioè il prezzo non è cambiato). E probabilmente non potrebbe, sono due anni e mezzo di test su minuti, sulla storia alpari (98% di qualità della storia).
Sembra più un errore della MetaTrader stessa, perché prima stava succedendo la stessa cosa, ma non c'era nessun errore.
Ну а проверку на допустимый отступ тоже сделали?
Avete controllato anche la rientranza ammissibile?
La distanza ammissibile nel test è 0. E il prezzo non è cambiato, dopo l'errore è lo stesso del prezzo al quale è stato creato l'ordine, prima della modifica.
Log
Il prezzo stesso (in generale) può essere inizialmente più vicino ai livelli di quanto il server permetta attualmente. Perciò è sempre consigliabile controllare tale condizione.
Sì, ora è chiaro che il controllo dell'indentazione non risolve il problema in questo caso. Ho capito bene che i livelli sl/tp per una posizione Sell sono impostati in base al prezzo Bid?
Il prezzo stesso (in generale) può essere inizialmente più vicino ai livelli di quanto il server permetta attualmente. Perciò è sempre consigliabile controllare questa condizione.
Sì, ora è chiaro che il controllo dell'indentazione non risolve il problema in questo caso. Ho capito bene che i livelli sl/tp per le posizioni Sell sono impostati sulla base del prezzo Bid?
Ho capito bene che i livelli sl/tp per una posizione Sell sono impostati in base alprezzo Bid? Se non è difficile, stampa gli attuali Ask, Bid, SL e TP per l'area problematica.
Ciao, prima non c'era nessun programma MT-5, ma ora hanno iniziato a darmi nella sezione "segnali"
Non ho bisogno di nessuna informazione. Uso Internet mobile e pago per ogni Mb.
E questi segnali hanno aumentato il consumo di Internet di 3-4 volte.
Domanda: come configurare cosa e dove non ricevere questi segnali? Non mi sono iscritto a nessuno dei segnali.