vlandex:
Помогите разобраться с синтаксом. Должно получиться так:
в конструкции
if (ExtMapBuffer[pos]> Ask)
Поставьте открывающую и закрывающую фигурные скобки туда, где им место.
А собственно, где тут сам цикл? Что-то я не заметил ни команды for, ни команды while. Мож я не туда смотрел?
Выделил { красным цветом где поставил, все равно и в первом случае выполняется иф и во втором случае выполняется, файлы постоянно перезаписываються.
drknn:
А собственно, где тут сам цикл? Что-то я не заметил ни команды for, ни команды while. Мож я не туда смотрел?
А собственно, где тут сам цикл? Что-то я не заметил ни команды for, ни команды while. Мож я не туда смотрел?
ну не цикл, а конструкция иф, условие. выполняються почему-то оба условия, причем противоречивые.
vlandex:
ну не цикл, а конструкция иф, условие. выполняються почему-то оба условия, причем противоречивые.
ну не цикл, а конструкция иф, условие. выполняються почему-то оба условия, причем противоречивые.
Нужно снять дамп данных
if (ExtMapBuffer[pos]> Ask) { Print("Когда больше ExtMapBuffer[",pos,"] = ",ExtMapBuffer[pos]," Ask = ",Ask); } if (ExtMapBuffer[pos]< Ask){ Print("Когда меньше ExtMapBuffer[",pos,"] = ",ExtMapBuffer[pos]," Ask = ",Ask); }
непомогло. вот весь код:
void ema() { double pr=2.0/(MA_Period+1); int pos=Bars-2; if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1; //---- main calculation loop while(pos>=0) { if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1]; ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr); pos--; if (ExtMapBuffer[pos]> Ask) { Print("Когда больше ExtMapBuffer[",pos,"] = ",ExtMapBuffer[pos]," Ask = ",Ask); string MADn; string MAUp; //MAUp=Ask; int handle; datetime orderOpen=OrderOpenTime(); handle=FileOpen("MADn.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) { FileWrite(handle, "1"); FileClose(handle); } handle=FileOpen("MAUp.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) { FileWrite(handle, "0"); FileClose(handle); } } } if (ExtMapBuffer[pos]< Ask) { Print("Когда меньше ExtMapBuffer[",pos,"] = ",ExtMapBuffer[pos]," Ask = ",Ask); // string MAUp; //MAUp=Ask; // int handle; //datetime orderOpen=OrderOpenTime(); handle=FileOpen("MAUp.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) { FileWrite(handle, "1"); FileClose(handle); } handle=FileOpen("MADn.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) { FileWrite(handle, "0"); FileClose(handle); } } }
А вопрос можно?
Как часто сохранять собираетесь? На каждом тике или же один раз на бар?
Vinin:
А вопрос можно?
Как часто сохранять собираетесь? На каждом тике или же один раз на бар?
Думаю на каждом тике, хотя без разницы...пока
Спрячьте условие в else:
if ( Buffer > ask ) { ... }
else
{
if ( buffer < ask ) { ... }
}
И даблы вы не правильно сравниваете: https://www.mql5.com/ru/articles/1561
Сделал вроде, но теперь терминал зависает, почему? Мож времени мало на запись, ошибка записи файла?
if (ExtMapBuffer[pos]> Ask) { string MADn; string MAUp; //MAUp=Ask; int handle; datetime orderOpen=OrderOpenTime(); handle=FileOpen("MADn.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) FileWrite(handle, "1"); FileClose(handle); handle=FileOpen("MAUp.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) FileWrite(handle, "0"); FileClose(handle); } else { if (ExtMapBuffer[pos]< Ask) { // string MAUp; //MAUp=Ask; // int handle; //datetime orderOpen=OrderOpenTime(); handle=FileOpen("MAUp.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) FileWrite(handle, "1"); FileClose(handle); handle=FileOpen("MADn.txt", FILE_CSV|FILE_WRITE, '\t'); if(handle>0) FileWrite(handle, "0"); FileClose(handle); } }

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите разобраться с синтаксом. Должно получиться так:
if <условие> then
<деуствие>
end if;
if <условие> then
<деуствие>
end if;
А у меня не выходит из цикла, выполня.ться оба цикла.