Наверно, оператор присвоения перегружен для типа bool. Он отслеживает переполнение и, если больше, чем 1, то присваивает и возвращает true.
В студии на уровне предупреждений 4 часто появляются предупреждения, когда пытаешься какой-нибудь нелогический тип вставить в логическое выражение. Или наоборот, когда логический тип применяешь в арифметических операциях.
Наверно, оператор присвоения перегружен для типа bool. Он отслеживает переполнение и, если больше, чем 1, то присваивает и возвращает true.
В студии на уровне предупреждений 4 часто появляются предупреждения, когда пытаешься какой-нибудь нелогический тип вставить в логическое выражение. Или наоборот, когда логический тип применяешь в арифметических операциях.
Логичнее было бы при
#property strict
выдать предупреждение, а без - оставить как в старой версии
Есть счёт №1 - пятизнак с мин.лот 0,01 и шагом 0,01 (билд 584); счёт №2 - 4-х знак с мин.лот 0,1 и шагом лота 0,1 (билд 584) и счёт №3, точно такоё же как и №2, только терминал билд 509.
Есть счёт №1 - пятизнак с мин.лот 0,01 и шагом 0,01 (билд 584); счёт №2 - 4-х знак с мин.лот 0,1 и шагом лота 0,1 (билд 584) и счёт №3, точно такоё же как и №2, только терминал билд 509.
И есть трал стоплосса:
Почему на счёте №1 стоплосс тралится нормально, а на счетах №2 и 3 "еррор 130"??? Логика хоть и с подвывертом, но ведь в одном случае работает...
Из самого вопроса вытекает что проблема в том 5-ти значный или 4-х значный счет. Смотрю в код. Где определена переменная pipPoint и чему она равна? Скорее всего проблема кроется именно там.
Из самого вопроса вытекает что проблема в том 5-ти значный или 4-х значный счет. Смотрю в код. Где определена переменная pipPointsи чему она равна? Скорее всего проблема кроется именно там.
В ините определяю pipPoints = MarketInfo( Symbol(), MODE_POINT);
Увеличил значение MaxStop, вроде трал должен с бОльшим шагом меняться, но он с шагом в 1 пункт меняется, но хоть стал тралить и на 4-знаке... Придётся всё же логику переделывать, нужен настраиваемый шаг.
Какие изменения необходимо внести в код индикатора, чтобы на пятиминутный график можно было прикрепить этот индикатор, рассчитанный на более старшем таймфрейме, например, на тридцатиминутном или часовом?
Спасибо.
На подобный вопрос -как отразить индикатор с недельного на график Н4. я долбил уже на нескольких форумах . и здесь тоже но ни чего не добился и не нашел . лучшего чем прописать размер старшего ТФ-ма в коде для меньшего ни кто не подсказывает. хотя если ваш индикатор имеет простую логистику и берет для своего подсчета простые вычисления по барам то это возможно . если можете текстовый код и скрин на н1 в студию со своими пояснениями .
и так индикатор должен рисовать верт линию на том баре на котором цена закроется в середине бара.....
double close_price(int nomer_bara)
{
if(nomer_bara<1)
{
Alert("нельзя анализировать текущий бар");
}
else
{
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3)//возвращает 1/3 если цена текущего бара закрылась ниже 1/3 его спреда
{
return(1/3);
}
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3&&(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)*2)/3)//возвращает 2/3 если цена текущего бара закрылась ниже 2/3 и выше 1/3 его спреда
{
return(2/3);
}
if((iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>(iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))*2)/3&&iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))//возвращает 1 если цена текущего бара закрылась выше 2/3 его спреда
{
return(1);
}
}
}
if(close_price(1)==1/3)// в случае если цена закрылась внизу то нарисовать линию на этом баре
{
SetVLine(Red, "", Time[1], STYLE_SOLID, 2);
}
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста
а от чего зависит качество тестирования и как его повысить к максимальному?
Посмотри на этом сайте,как протестировать советника с 99% качеством моделирования
http://tradelikeapro.ru/kak-poluchit-kachestvo-modelirovaniya-99/
Это для типа BOOL так. Т.е. для bool из старой версии MQL4. Для однобайтового bool это не так. При значении более нуля случится переполнение.
Интересно, тогда почему
компилирует без ошибок и предупреждений?
Интересно, тогда почему
компилирует без ошибок и предупреждений?Наверно, оператор присвоения перегружен для типа bool. Он отслеживает переполнение и, если больше, чем 1, то присваивает и возвращает true.
В студии на уровне предупреждений 4 часто появляются предупреждения, когда пытаешься какой-нибудь нелогический тип вставить в логическое выражение. Или наоборот, когда логический тип применяешь в арифметических операциях.
Наверно, оператор присвоения перегружен для типа bool. Он отслеживает переполнение и, если больше, чем 1, то присваивает и возвращает true.
В студии на уровне предупреждений 4 часто появляются предупреждения, когда пытаешься какой-нибудь нелогический тип вставить в логическое выражение. Или наоборот, когда логический тип применяешь в арифметических операциях.
Логичнее было бы при
выдать предупреждение, а без - оставить как в старой версии
не совсем так, но суть верна.
А вообще-то: ноль соответствует false, а любое другое, отличное от ноля значение соответствует true
Ну не программист я всё же...
Есть счёт №1 - пятизнак с мин.лот 0,01 и шагом 0,01 (билд 584); счёт №2 - 4-х знак с мин.лот 0,1 и шагом лота 0,1 (билд 584) и счёт №3, точно такоё же как и №2, только терминал билд 509.
И есть трал стоплосса:
Почему на счёте №1 стоплосс тралится нормально, а на счетах №2 и 3 "еррор 130"??? Логика хоть и с подвывертом, но ведь в одном случае работает...
Ну не программист я всё же...
Есть счёт №1 - пятизнак с мин.лот 0,01 и шагом 0,01 (билд 584); счёт №2 - 4-х знак с мин.лот 0,1 и шагом лота 0,1 (билд 584) и счёт №3, точно такоё же как и №2, только терминал билд 509.
И есть трал стоплосса:
Почему на счёте №1 стоплосс тралится нормально, а на счетах №2 и 3 "еррор 130"??? Логика хоть и с подвывертом, но ведь в одном случае работает...
Из самого вопроса вытекает что проблема в том 5-ти значный или 4-х значный счет. Смотрю в код. Где определена переменная pipPoint и чему она равна? Скорее всего проблема кроется именно там.
Из самого вопроса вытекает что проблема в том 5-ти значный или 4-х значный счет. Смотрю в код. Где определена переменная pipPoints и чему она равна? Скорее всего проблема кроется именно там.
В ините определяю pipPoints = MarketInfo( Symbol(), MODE_POINT);
Увеличил значение MaxStop, вроде трал должен с бОльшим шагом меняться, но он с шагом в 1 пункт меняется, но хоть стал тралить и на 4-знаке... Придётся всё же логику переделывать, нужен настраиваемый шаг.
Здравствуйте!
Вопрос следующий. Есть индикатор Heiken Ashi Smoothed https://www.mql5.com/ru/code/7930
Какие изменения необходимо внести в код индикатора, чтобы на пятиминутный график можно было прикрепить этот индикатор, рассчитанный на более старшем таймфрейме, например, на тридцатиминутном или часовом?
Спасибо.
На подобный вопрос -как отразить индикатор с недельного на график Н4. я долбил уже на нескольких форумах . и здесь тоже но ни чего не добился и не нашел . лучшего чем прописать размер старшего ТФ-ма в коде для меньшего ни кто не подсказывает. хотя если ваш индикатор имеет простую логистику и берет для своего подсчета простые вычисления по барам то это возможно . если можете текстовый код и скрин на н1 в студию со своими пояснениями .
и так индикатор должен рисовать верт линию на том баре на котором цена закроется в середине бара.....