Помогите тупому программеру плз :(

 
Почему МТ4 может отказываться выводить сообщения в журнал?

Элементарный скрипт:

//************************************************************************************
//+------------------------------------------------------------------+
//| _Test.mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
Print("Ok!");
//----
return(0);
}
//+------------------------------------------------------------------+
//************************************************************************************

который нихрена не печатает в журнале :((((((((( (принтскрин прилагается)
 
Дай-ка я угадаю :)
1. Есть два каталога с МТ4, и редактируя в одном, ты пытаешься увидеть изменения в другом
2. Скрипт переименован, запускается одним , а компилируется другой.
3. Может все-таки стоит нажать закладку "Эксперты"
4. И быть немного более упорным и не сдаваться сразу и идти за пустяком за помощью на форум
 
Rosh:
Дай-ка я угадаю :)
1. Есть два каталога с МТ4, и редактируя в одном, ты пытаешься увидеть изменения в другом
2. Скрипт переименован, запускается одним , а компилируется другой.
3. Может все-таки стоит нажать закладку "Эксперты"
4. И быть немного более упорным и не сдаваться сразу и идти за пустяком за помощью на форум
МЛЯЯЯЯЯЯЯЯЯЯЯЯ :)))))))))))))))))))), СОРИИИИИИИИИИИИИ, хреново быть дубовым!!!!!!!!!!! (но честно я аж на какашку извелся), постараюсь больше не буду :)
 
тогда последний вопрос плз (собсно из-за чего и разгорелся сырбор)

кусок кода:
for(j=0;j<100;j++)
{
h=High[i]-Open[i];
p=(spread+j)*Point;
Print(DoubleToStr(h,Digits)+" - "+DoubleToStr(p,Digits));
if(h==p)
{
TP[j]+=1;
Print("!!!"+DoubleToStr(High[i]-Open[i],Digits)+" - "+DoubleToStr((spread+j)*Point,Digits));
}
}

почему может не печатать по второму Print(), по первому печатает нормально, переменные h и p выше объявлены как double, на картинке ясно видно, что как минимум один раз условие равенства выполняется, и скрипт должен был зайти внутрь if ?
Файлы:
____2_.jpg  98 kb
 
Ну так сначала нормализуй их на самом деле , а не в распринтовке.
NormalizeDouble( ,Digits) , а потом сравнивай. Ку...
 
Причём это желательно делать как можно ближе к сравнению.
if(NormalizeDouble( h,Digits)==NormalizeDouble( p,Digits))
 
Rosh:
Ну так сначала нормализуй их на самом деле , а не в распринтовке.
NormalizeDouble( ,Digits) , а потом сравнивай. Ку...
гы, сенк :), хотя я конечно не понимаю почему два равных дабла отличны друг от друга (раньше то, с чем приходилось иметь дело, нормально сравнивало даблы без всякой нормализации), ну лан, буду знать. Еще раз сенк :)
 
SKif:
Причём это желательно делать как можно ближе к сравнению.
if(NormalizeDouble( h,Digits)==NormalizeDouble( p,Digits))
сорри, а почему ближе? разве с течением времени переменная сама по себе может измениться? (просто я еще не знаю всех тонкостей МКЛ4)
 
Не могу сказать почему. Но лучше делать так.
Кстати, разница двух нормализованных величин может дать ненормализованную. Поэтому нормализовать нужно при любом сравнении и непосредственно перед сравнением, не допуская промежуточных вычислений.
В том числе, необходимо нормализовать Bid, Ask и пр., одним словом, всё.

Следишь-следишь за этим, да нет-нет и всё равно наколешься..
 
SKif:
Не могу сказать почему. Но лучше делать так.
Кстати, разница двух нормализованных величин может дать ненормализованную. Поэтому нормализовать нужно при любом сравнении.
В том числе, необходимо нормализовать Bid, Ask и пр., одним словом, всё.

Следишь-следишь за этим, да нет-нет и всё равно наколешлся..
геморно :(... биг сенк за инфу :)
Причина обращения: