Sto scrivendo un robot, collegando Ctrade, prima voglio usare la logica, secondo la quale all'inizio di ogni ora farà un'operazione di acquisto a prezzo di mercato, dopo mezz'ora venderà tutto (Sell) a un nuovo prezzo di mercato. Quando lo provo nel tester, ottengo l'errore Invalid order type.
Il mio strumento è SBER, il mio cliente è Otkritie. Il mio ordine è in modalità manuale, il mio ordine non è passato nel conto reale o demo.
Quale potrebbe essere l'errore? È vero che il mercato azionario non può essere scambiato al prezzo di mercato?
Sto scrivendo un robot, collegando Ctrade, prima voglio usare la logica, secondo la quale all'inizio di ogni ora farà un'operazione di acquisto a prezzo di mercato, dopo mezz'ora venderà tutto (Sell) a un nuovo prezzo di mercato. Quando lo provo nel tester, ottengo l'errore Invalid order type.
Il mio strumento è SBER, il mio cliente è Otkritie. Il mio ordine è in modalità manuale, il mio ordine non è passato nel conto reale o demo.
Quale potrebbe essere l'errore? È vero che il mercato azionario non può essere scambiato al prezzo di mercato?
Non riesco a capire cosa hai scritto senza il tuo codice e perché non funziona per te.
Movlat Baghiyev: Se l'EA è in esecuzione su un computer portatile ed è andato a dormire, l'EA collegato funzionerà in questo caso?
La modalità di ibernazione è di solito quella che spegne l'unità,
Recentemente ho installato un server, e solo il terzo giorno ho visto che il computer era addormentato, cioè non funzionava, cioè tutti gli EA non funzionavano,
Ho disattivato la modalità di ibernazione e tutto va bene.
Movlat Baghiyev: Ciao, se il consulente è in esecuzione su un computer portatile ed è in modalità di ibernazione, il consulente collegato funzionerà in questo caso?
No, non funzionerà. Nelle impostazioni di alimentazione, impostare l'alimentazione:
E ci può essere anche una fregatura - la mattina, all'apertura delle contrattazioni, l'asta non inizia immediatamente, non dal primo secondo - è allora che sono possibili errori.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Sto scrivendo un robot, collegando Ctrade, prima voglio usare la logica, secondo la quale all'inizio di ogni ora farà un'operazione di acquisto a prezzo di mercato, dopo mezz'ora venderà tutto (Sell) a un nuovo prezzo di mercato. Quando lo provo nel tester, ottengo l'errore Invalid order type.
Il mio strumento è SBER, il mio cliente è Otkritie. Il mio ordine è in modalità manuale, il mio ordine non è passato nel conto reale o demo.
Quale potrebbe essere l'errore? È vero che il mercato azionario non può essere scambiato al prezzo di mercato?
Sto scrivendo un robot, collegando Ctrade, prima voglio usare la logica, secondo la quale all'inizio di ogni ora farà un'operazione di acquisto a prezzo di mercato, dopo mezz'ora venderà tutto (Sell) a un nuovo prezzo di mercato. Quando lo provo nel tester, ottengo l'errore Invalid order type.
Il mio strumento è SBER, il mio cliente è Otkritie. Il mio ordine è in modalità manuale, il mio ordine non è passato nel conto reale o demo.
Quale potrebbe essere l'errore? È vero che il mercato azionario non può essere scambiato al prezzo di mercato?
Se l'EA è in esecuzione su un computer portatile ed è andato in modalità di ibernazione, l'EA collegato funzionerà in questo caso?
E tu includerai la stampa nel registro di qualsiasi valore e lo scoprirai. Se non stampa, non funziona.
Se l'EA è in esecuzione su un computer portatile ed è andato a dormire, l'EA collegato funzionerà in questo caso?
La modalità di ibernazione è di solito quella che spegne l'unità,
Recentemente ho installato un server, e solo il terzo giorno ho visto che il computer era addormentato, cioè non funzionava, cioè tutti gli EA non funzionavano,
Ho disattivato la modalità di ibernazione e tutto va bene.
Questo è chiaro...mi chiedevo se qualcuno potesse condividere la sua esperienza con un principiante.
Ciao, se il consulente è in esecuzione su un computer portatile ed è in modalità di ibernazione, il consulente collegato funzionerà in questo caso?
No, non funzionerà. Nelle impostazioni di alimentazione, impostare l'alimentazione:
Senza il tuo codice, è difficile capire cosa hai scritto e perché non funziona.
//| Gear.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade/Trade.mqh>
CTrade trade;
bool TimeFlag, FLG;
int TimeScale=50, TimeInMemory, TimeNow;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---Блок получения информации с биржи
MqlTick oCurrentTick;
SymbolInfoTick(Symbol(), oCurrentTick);
//---Блок определения начала нового временного интервала
TimeFlag=false;
datetime tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
if(MathMod(StringToInteger((string)stm.min),TimeScale)==0)
{
TimeNow=StringToInteger((string)stm.min);
}
if(TimeNow != TimeInMemory)
{
TimeInMemory=TimeNow;
TimeFlag=true;
//Print(_Symbol);
}
if(TimeFlag)
{
if(FLG)
{
if(!trade.Buy(1,_Symbol))
{
//--- сообщим о неудаче
Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
FLG=false;
}
else
{
trade.Sell(1);
FLG=true;
}
}
}
//+------------------------------------------------------------------+
Questo non è il modo di farlo:
int TimeScale=50,TimeInMemory,TimeNow;
o meglio, dopo una tale dichiarazione, dovete inizializzare esplicitamente(assegnare valori a) queste variabili in OnInit().
Anche il metodo Sell deve essere circondato da controlli, come
" (",trade.ResultRetcodeDescription(),")");
E ci può essere anche una fregatura - la mattina, all'apertura delle contrattazioni, l'asta non inizia immediatamente, non dal primo secondo - è allora che sono possibili errori.