Estou correndo com dados históricos, as variáveis macd1,2, baixo preço, alto preço são valores atribuídos, mas a condição não quer correr, eu quebrei minha cabeça não consigo entender onde cavar ... (((
Uma confusão total e nenhuma compreensão do que você está fazendo
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()) retorna dois valores porque a primeira variável é do tipo bool e não precisa de GetLastError, e como há uma vírgula, GetLastError retorna o último erro no código no momento de chamar GetLastError?
Sim... há dois valores que imprimem.....
Isso é quase exatamente o que você escreveu.
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... então você está respondendo à pessoa errada... estou vendo)
Sim, eu estava respondendo à mesma pessoa a quem você estava respondendo. Mas você também lhe disse a coisa errada - leia quando MODE_TRADES é necessário e quando não é. E como um pedido deve ser selecionado em um bilhete.
Bem, sim, eu estava respondendo à mesma pessoa que você estava respondendo. Mas você também não lhe contou tudo corretamente - leia quando MODE_TRADES é necessário e quando não é. E como um pedido deve ser selecionado em um bilhete.
MODE_TRADES ainda não olhou para ele, apenas a peça que 11 imprimiram...
Olá a todos!
Passei metade da noite tentando descobrir porque uma simples condição não funciona, por favor, me ajude a descobrir:
Estou correndo com dados históricos, as variáveis macd1,2, baixo preço, alto preço são valores atribuídos, mas a condição não quer correr, eu quebrei minha cabeça não consigo entender onde cavar ... (((
talvez 1 e 1 ?/i.e. verdadeiro e código de erro 1
Uma confusão total e nenhuma compreensão do que você está fazendo
Print(takelimit,GetLastError()) retorna dois valores porque a primeira variável é do tipo bool e não precisa de GetLastError, e como há uma vírgula, GetLastError retorna o último erro no código no momento de chamar GetLastError?
Sim... há dois valores que imprimem.....
Isso é quase exatamente o que você escreveu.
Sim... há dois valores para imprimir.....
Isso é quase exatamente o que você escreveu.
Uma confusão completa e um mal-entendido do que está fazendo...
Eu não estou realmente fazendo nada, apenas assumi que o homem vai imprimir 1 e 1 em vez de 11))
e isso é tudo...
Uma confusão completa e um mal-entendido do que está fazendo...
Ah... então você está respondendo à pessoa errada... estou vendo)
Eu não estou realmente fazendo nada, apenas assumi que a pessoa imprimirá não 11, mas 1 e 1).
Como esta linha aqui:
Devo imprimir "11"?
Imprimirá então "1:1".
O código de erro 1 não é um erro, mas o resultado é desconhecido.
Como esta linha aqui:
Pode imprimir "11"?
Imprimirá então "1:1".
O código de erro 1 não é um erro, mas o resultado é desconhecido.
Sim, eu já o mudei!
Ah... então você está respondendo à pessoa errada... estou vendo)
Sim, eu estava respondendo à mesma pessoa a quem você estava respondendo. Mas você também lhe disse a coisa errada - leia quando MODE_TRADES é necessário e quando não é. E como um pedido deve ser selecionado em um bilhete.
Bem, sim, eu estava respondendo à mesma pessoa que você estava respondendo. Mas você também não lhe contou tudo corretamente - leia quando MODE_TRADES é necessário e quando não é. E como um pedido deve ser selecionado em um bilhete.
MODE_TRADES ainda não olhou para ele, apenas a peça que 11 imprimiram...