Sono in esecuzione su dati storici, le variabili macd1,2, lowprice, highprice sono assegnati valori, ma la condizione non vuole eseguire, mi sono rotto la testa non può capire dove scavare ... (((
Un casino totale e nessuna comprensione di ciò che si sta facendo
bool takelimit; // Здесь переменная равна false//--- Здесь вот что: сначала выбирается ордер по тикету (MODE_TRADES здесь не нужно от слова "совсем", что говорит о том, что вы не представляете что вы делаете), //--- далее переменной takelimit присваивается результат работы функции выбора ордера, //--- и если ордер есть с таким тикетом, или был когда-то, то функция вернёт true, и takelimit будет присвоено true, соответственно, будет выведен код последней ошибки,//--- что вовсе не говорит, что ошибка здесь была при выборе ордера по тикету - вы же переменную, хранящую код последней ошибки, не сбросили при помощи ResetLastError()//--- И далее вообще не понятно к чему у вас фигурные скобки - они висят в пустоте, а это составной оператор, который должен после условия идти.if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print(string(takelimit)+" :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
{
if(iBarShift(Symbol(),0,OrderOpenTime())==1)
deletelimit=OrderDelete(ticket);
if(!deletelimit)
Comment(GetLastError());
}
//+------------------------------------------------------------------+//--- А нужно примерно так (фигурные скобки специально оставил для понимания где какой блок кода):ResetLastError();
if(OrderSelect(ticket,SELECT_BY_TICKET) && OrderCloseTime()==0)
{
if(iBarShift(Symbol(),PERIOD_CURRENT,OrderOpenTime())==1)
{
if(!OrderDelete(ticket))
Print("Ошибка удаления ордера #",(string)ticket,": ",GetLastError());
}
}
else
{
Print("Ошибка выбора ордера #",(string)ticket,": ",GetLastError());
}
Print(takelimit,GetLastError()) restituisce due valori perché la 1° variabile è di tipo bool e non ha bisogno di GetLastError, e poiché c'è una virgola, GetLastError restituisce l'ultimo errore nel codice al momento della chiamata di GetLastError?
Sì... ci sono due valori che stampano .....
È quasi esattamente quello che hai scritto.
int ticket;
void Fn()
{
ResetLastError();//Сбрасываем код предыдущей ошибкиif(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}//Если не выбран ордер по указанному тикету-принтим код ошибкиelse//иначе(если ордер нашёлся)
{
if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}//Если выбранный ордер открылся на предыдущем баре и не удалось его удалить(надеюсь Вы работаете с отложенниками)-тогда выводим комент ошибки
}
}
Ah... quindi stai rispondendo alla persona sbagliata... capisco)
Sì, stavo rispondendo alla stessa persona a cui stavi rispondendo tu. Ma gli hai anche detto la cosa sbagliata - leggi quando MODE_TRADES è richiesto e quando non lo è. E come dovrebbe essere selezionato un ordine su un biglietto.
Beh, sì, stavo rispondendo alla stessa persona a cui stavi rispondendo tu. Ma non gli avete nemmeno detto tutto correttamente - leggete quando MODE_TRADES è richiesto e quando non lo è. E come un ordine dovrebbe essere selezionato su un biglietto.
MODE_TRADES non l'ha ancora guardato, solo il pezzo che 11 ha stampato...
Ciao a tutti!
Ho passato metà della notte cercando di capire perché una semplice condizione non funziona, per favore aiutatemi a capirlo:
Sono in esecuzione su dati storici, le variabili macd1,2, lowprice, highprice sono assegnati valori, ma la condizione non vuole eseguire, mi sono rotto la testa non può capire dove scavare ... (((
forse 1 e 1 ?/i.e. vero e codice di errore 1
Un casino totale e nessuna comprensione di ciò che si sta facendo
Print(takelimit,GetLastError()) restituisce due valori perché la 1° variabile è di tipo bool e non ha bisogno di GetLastError, e poiché c'è una virgola, GetLastError restituisce l'ultimo errore nel codice al momento della chiamata di GetLastError?
Sì... ci sono due valori che stampano .....
È quasi esattamente quello che hai scritto.
Sì...ci sono due valori da stampare.....
È quasi esattamente quello che hai scritto.
Un casino totale e un'incomprensione di quello che stai facendo...
In realtà non sto facendo nulla, ho solo supposto che l'uomo stamperà 1 e 1 invece di 11))
e questo è tutto...
Un casino totale e un'incomprensione di quello che stai facendo...
Ah... quindi stai rispondendo alla persona sbagliata... capisco)
In realtà non sto facendo nulla, ho solo supposto che la persona stamperà non 11, ma 1 e 1).
Come questa linea qui:
Devo stampare "11"?
Verrà stampato "1:1" allora.
Il codice di errore 1 non è un errore, ma il risultato è sconosciuto.
Come questa linea qui:
Può stampare "11"?
Verrà stampato "1:1" allora.
Il codice di errore 1 non è un errore, ma il risultato è sconosciuto.
Sì, l'ho già cambiato!
Ah... quindi stai rispondendo alla persona sbagliata... capisco)
Sì, stavo rispondendo alla stessa persona a cui stavi rispondendo tu. Ma gli hai anche detto la cosa sbagliata - leggi quando MODE_TRADES è richiesto e quando non lo è. E come dovrebbe essere selezionato un ordine su un biglietto.
Beh, sì, stavo rispondendo alla stessa persona a cui stavi rispondendo tu. Ma non gli avete nemmeno detto tutto correttamente - leggete quando MODE_TRADES è richiesto e quando non lo è. E come un ordine dovrebbe essere selezionato su un biglietto.
MODE_TRADES non l'ha ancora guardato, solo il pezzo che 11 ha stampato...