Будьте осторожны с данным кодом. Он был написан на ходу и не был проверен! :)))
И Я лишь написал один из вариантов решения Вашей задачи.
Кстати, Вы ранее приводили следующий код:
Болк открытия на бай
if(Buy==true)
{Buy=false;
ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{Print("BUY order opened : ",OrderOpenPrice());
Alert("Buy Order for ",Symbol());
SendMail("Buy Order "+Symbol()+" "+Ask,SL);
}
}
elsePrint("Error opening BUY order : ",GetLastError());
return(0);
}
А если, например, будет реквот?? То ордер BUY ведь не откроется, а сигнал на открытие мог быть и верным. И через пару часов Вы увидите как цена ушла далеко вверх, а ордер BUY не открылcя из-за реквота...
Будьте осторожны с данным кодом. Он был написан на ходу и не был проверен! :)))
И Я лишь написал один из вариантов решения Вашей задачи.
Кстати, Вы ранее приводили следующий код:
А если, например, будет реквот?? То ордер BUY ведь не откроется, а сигнал на открытие мог быть и верным. И через пару часов Вы увидите как цена ушла далеко вверх, а ордер BUY не открылcя из-за реквота...
Болк открытия на бай
if(Buy==true)
{ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{Buy=false;
Print("BUY order opened : ",OrderOpenPrice());
Alert("Buy Order for ",Symbol());
SendMail("Buy Order "+Symbol()+" "+Ask,SL);
}
}
elsePrint("Error opening BUY order : ",GetLastError());
return(0);
}
Пока ордер не откроется, сигнал на открытие длинной позиции Buy будет висеть в состоянии True.
Пока ордер не откроется, сигнал на открытие длинной позиции Buy будет висеть в состоянии True.
Спасибо огромное! и Роману спасибо огроное!
И все-таки не получается добиться, увеличении лота на определенный шаг, мне необходимо увеличения лота в серии допустим открытия ордеров бай без участия маржи (т.к. маржа иногда влияет так, что уменьшает лот, а мне не надо такого), мне нужно строгое увеличени на определенный размер в серии ордеров. Ну т.е. идет тренд по одному критерию сигнал на бай, по второму появляется дополнительный сигнал на бай - открывается ордер, затем по первому критерию все еще сохраняется сигнал на бай, а по второму, после небольшой коррекции еще раз появляется на бай и открывается еще один ордер, но уже с большим размером(размер зается в начальных параметрах, после закрытия всех ордеров на бай появляется сигнал на сел, и тут все начинается по новой с начального размера лота.
Плизз моЗГ на бекрень что нужно показать какой кусок кода?
И все-таки не получается добиться, увеличении лота на определенный шаг, мне необходимо увеличения лота в серии допустим открытия ордеров бай без участия маржи (т.к. маржа иногда влияет так, что уменьшает лот, а мне не надо такого), мне нужно строгое увеличени на определенный размер в серии ордеров.
Если Вы не будете использовать маржу в расчётах лота, а будете оперировать только постоянными параметрами, заданными, например, в extern-переменных, то и лоты соответственно будут увеличиваться только на постоянные значения. Принцип, по которому может быть написан код Я приводил Выше.
SeALALex:
Ну т.е. идет тренд по одному критерию сигнал на бай, по второму появляется дополнительный сигнал на бай - открывается ордер, затем по первому критерию все еще сохраняется сигнал на бай, а по второму, после небольшой коррекции еще раз появляется на бай и открывается еще один ордер, но уже с большим размером(размер зается в начальных параметрах, после закрытия всех ордеров на бай появляется сигнал на сел, и тут все начинается по новой с начального размера лота.
Плизз моЗГ на бекрень что нужно показать какой кусок кода?
У Вас есть переменные Lots, LotsInitial и LotsStep. При смене тренда Lots обнуляете и присваиваете начальное значение LotsInitial. Если тренд продолжается и уже открыты ордера по тренду и пришёл сигнал, что нужно открыть новый ордер, увеличиваете переменную Lots с шагом LotsStep и открываете ордер.
Видно, что всю логику Вы понимаете, а почему-то превратить её в операторы if'ы не можете... Почему, не знаю.
Может поможет:
extern LotsInitial = 0.5;
extern LotsStep = 0.1;
Lots;
int start()
{
...
if ((Тренд окончен) && (Все ордера закрыты) && (Пришёл сигнал о возможном начале нового тренда))
Lots = LotsInitial;
if ((Тренд подтверждён) && (Коррекция) && (Пришёл ещё сигнал открыться по тренду))
Lots += LotsStep;
...
}
Если Вы не будете использовать маржу в расчётах лота, а будете оперировать только постоянными параметрами, заданными, например, в extern-переменных, то и лоты соответственно будут увеличиваться только на постоянные значения. Принцип, по которому может быть написан код Я приводил Выше.
У Вас есть переменные Lots и LotsStep. При смене тренда Lots обнуляете и присваиваете начальное значение. Если тренд продолжается и уже открыты ордера по тренду и пришёл сигнал, что нужно открыть новый ордер, увеличиваете переменную Lots с шагом LotsStep и открываете ордер.
Видно, что всю логику Вы понимаете, а почему-то превратить её в операторы if'ы не можете... Почему, не знаю.
можно я вложу часть кода в виде файла отвечающую за открытие в виде файла, а вы посмотрите... вставил но похоже, что не так с таким кодом как я выкладываю он открывает на шаг больше но посотянно.
можно я вложу часть кода в виде файла отвечающую за открытие в виде файла, а вы посмотрите... вставил но похоже, что не так с таким кодом как я выкладываю он открывает на шаг больше но посотянно.
Вы бы сначала Все ошибки исправили. Зачем добавлять что-то в советник, если он и без этого не работает? Хотя данный код не похож на полный функционал советника. Видимо Вы повырезали куски кода из него, а Мне ошибки разгребать? :)))
Например, не закрыта функция init()... И непонятная переменная: LastOrder...
Вы бы сначала Все ошибки исправили. Зачем добавлять что-то в советник, если он и без этого не работает? Хотя данный код не похож на полный функционал советника. Видимо Вы повырезали куски кода из него, а Мне ошибки разгребать? :)))
Например, не закрыта функция init()... И непонятная переменная: LastOrder...
Исправьте ошибки, пожалуйста.
Да я его собрал как конструктор вроде работает, сейчас попробую конечно более или менее привести в нормальный вид и выложу
Речь не о ND. point это размер пункта, умножим его на ноль пять это будет к примеру 0,00005, не вижу смысла сравнивать это число с OrderClosePrice()-OrderTakeProfit(). TP не гарантирует ровно такую же цену закрытия. Плюс для баев и селов будут разные условия проверки
Такая конструкция несколько надежнее.
Спасибо!!Читаю. Плюс для баев и селов будут разные условия проверки-Аведь правда!!
Я наверное что-то не понимаю:
С NewOrder разобрался спасибо теперь шаг работает
С NewOrder разобрался спасибо теперь шаг работает
Будьте осторожны с данным кодом. Он был написан на ходу и не был проверен! :)))
И Я лишь написал один из вариантов решения Вашей задачи.
Кстати, Вы ранее приводили следующий код:
А если, например, будет реквот?? То ордер BUY ведь не откроется, а сигнал на открытие мог быть и верным. И через пару часов Вы увидите как цена ушла далеко вверх, а ордер BUY не открылcя из-за реквота...
Будьте осторожны с данным кодом. Он был написан на ходу и не был проверен! :)))
И Я лишь написал один из вариантов решения Вашей задачи.
Кстати, Вы ранее приводили следующий код:
А если, например, будет реквот?? То ордер BUY ведь не откроется, а сигнал на открытие мог быть и верным. И через пару часов Вы увидите как цена ушла далеко вверх, а ордер BUY не открылcя из-за реквота...
а как от него застраховаться?
а как от него застраховаться?
Самый элементарный способ, переписать код иначе:
Пока ордер не откроется, сигнал на открытие длинной позиции Buy будет висеть в состоянии True.
Самый элементарный способ, переписать код иначе:
Пока ордер не откроется, сигнал на открытие длинной позиции Buy будет висеть в состоянии True.
Спасибо огромное! и Роману спасибо огроное!
И все-таки не получается добиться, увеличении лота на определенный шаг, мне необходимо увеличения лота в серии допустим открытия ордеров бай без участия маржи (т.к. маржа иногда влияет так, что уменьшает лот, а мне не надо такого), мне нужно строгое увеличени на определенный размер в серии ордеров. Ну т.е. идет тренд по одному критерию сигнал на бай, по второму появляется дополнительный сигнал на бай - открывается ордер, затем по первому критерию все еще сохраняется сигнал на бай, а по второму, после небольшой коррекции еще раз появляется на бай и открывается еще один ордер, но уже с большим размером(размер зается в начальных параметрах, после закрытия всех ордеров на бай появляется сигнал на сел, и тут все начинается по новой с начального размера лота.
Плизз моЗГ на бекрень что нужно показать какой кусок кода?
Спасибо огромное! и Роману спасибо огроное!
И все-таки не получается добиться, увеличении лота на определенный шаг, мне необходимо увеличения лота в серии допустим открытия ордеров бай без участия маржи (т.к. маржа иногда влияет так, что уменьшает лот, а мне не надо такого), мне нужно строгое увеличени на определенный размер в серии ордеров.
Если Вы не будете использовать маржу в расчётах лота, а будете оперировать только постоянными параметрами, заданными, например, в extern-переменных, то и лоты соответственно будут увеличиваться только на постоянные значения. Принцип, по которому может быть написан код Я приводил Выше.
Ну т.е. идет тренд по одному критерию сигнал на бай, по второму появляется дополнительный сигнал на бай - открывается ордер, затем по первому критерию все еще сохраняется сигнал на бай, а по второму, после небольшой коррекции еще раз появляется на бай и открывается еще один ордер, но уже с большим размером(размер зается в начальных параметрах, после закрытия всех ордеров на бай появляется сигнал на сел, и тут все начинается по новой с начального размера лота.
Плизз моЗГ на бекрень что нужно показать какой кусок кода?
У Вас есть переменные Lots, LotsInitial и LotsStep. При смене тренда Lots обнуляете и присваиваете начальное значение LotsInitial. Если тренд продолжается и уже открыты ордера по тренду и пришёл сигнал, что нужно открыть новый ордер, увеличиваете переменную Lots с шагом LotsStep и открываете ордер.
Видно, что всю логику Вы понимаете, а почему-то превратить её в операторы if'ы не можете... Почему, не знаю.
Может поможет:
Если Вы не будете использовать маржу в расчётах лота, а будете оперировать только постоянными параметрами, заданными, например, в extern-переменных, то и лоты соответственно будут увеличиваться только на постоянные значения. Принцип, по которому может быть написан код Я приводил Выше.
У Вас есть переменные Lots и LotsStep. При смене тренда Lots обнуляете и присваиваете начальное значение. Если тренд продолжается и уже открыты ордера по тренду и пришёл сигнал, что нужно открыть новый ордер, увеличиваете переменную Lots с шагом LotsStep и открываете ордер.
Видно, что всю логику Вы понимаете, а почему-то превратить её в операторы if'ы не можете... Почему, не знаю.
можно я вложу часть кода в виде файла отвечающую за открытие в виде файла, а вы посмотрите... вставил но похоже, что не так с таким кодом как я выкладываю он открывает на шаг больше но посотянно.
можно я вложу часть кода в виде файла отвечающую за открытие в виде файла, а вы посмотрите... вставил но похоже, что не так с таким кодом как я выкладываю он открывает на шаг больше но посотянно.
Вы бы сначала Все ошибки исправили. Зачем добавлять что-то в советник, если он и без этого не работает? Хотя данный код не похож на полный функционал советника. Видимо Вы повырезали куски кода из него, а Мне ошибки разгребать? :)))
Например, не закрыта функция init()... И непонятная переменная: LastOrder...
Исправьте ошибки, пожалуйста.
Вы бы сначала Все ошибки исправили. Зачем добавлять что-то в советник, если он и без этого не работает? Хотя данный код не похож на полный функционал советника. Видимо Вы повырезали куски кода из него, а Мне ошибки разгребать? :)))
Например, не закрыта функция init()... И непонятная переменная: LastOrder...
Исправьте ошибки, пожалуйста.
Да я его собрал как конструктор вроде работает, сейчас попробую конечно более или менее привести в нормальный вид и выложу
Речь не о ND. point это размер пункта, умножим его на ноль пять это будет к примеру 0,00005, не вижу смысла сравнивать это число с OrderClosePrice()-OrderTakeProfit(). TP не гарантирует ровно такую же цену закрытия. Плюс для баев и селов будут разные условия проверки
Такая конструкция несколько надежнее.
Спасибо!!Читаю. Плюс для баев и селов будут разные условия проверки-Аведь правда!!