eevviill
Заблокирован
Всё там работает. К SL и TP по 0 добавь.Не открывают...(((( Пишет ошибка открытия Тук-Тук.:cr:
Всё там работает. К SL и TP по 0 добавь.Не открывают...(((( Пишет ошибка открытия Тук-Тук.:cr:
Здравствуйте. Сделайте, пожалуйста, в этом советнике так, чтобы когда срабатывает отложенный ордер с проскальзыванием, то стоплосс и тейкпрофит бы менялись на величину проскальзывания. То есть, поставился скажем байстоп на 1.2900, тейк - 1.2930, стоп - 1.2870. Сработал байстоп с проскальзыванием в 2 пункта, то есть открылся ордер бай по цене 1.2902. Вот тогда чтобы тейкпрофит поставился бы на 1.2932, а стоплосс на 1.2872, то есть они бы изменились на 2 пункта - на величину проскальзывания...Буду очень благодарен за помощь!
Всё там работает. К SL и TP по 0 добавь.
Здравствуйте. Сделайте, пожалуйста, в этом советнике так, чтобы когда срабатывает отложенный ордер с проскальзыванием, то стоплосс и тейкпрофит бы менялись на величину проскальзывания. То есть, поставился скажем байстоп на 1.2900, тейк - 1.2930, стоп - 1.2870. Сработал байстоп с проскальзыванием в 2 пункта, то есть открылся ордер бай по цене 1.2902. Вот тогда чтобы тейкпрофит поставился бы на 1.2932, а стоплосс на 1.2872, то есть они бы изменились на 2 пункта - на величину проскальзывания...Буду очень благодарен за помощь!
Это не реально. Только если модифицировать ордер после открытия.Ну, если никто не берётся за это, то хотя бы подскажите, как в коде написать - Если селлстоп(или байстоп) сработал с проскальзыванием, то новый стоплосс равняется стоплосс плюс проскальзывание.
Это не реально. Только если модифицировать ордер после открытия.
Это сначала советника.Здравствуйте,кто может добавить в експерта функцию - ограничения времени работы експерта,и чтобы этот параметр можно было менять(например с 9 до 15 часов).Заранее спасибо.
Посмотреть вложение 89348
extern string vr = "Время работы";
extern int StartHour = 8;
extern int StopHour = 22;
if(Hour()<StartHour || Hour()>=StopHour) return;
Это сначала советника.
Это сразу после функции int start(){PHP:extern string vr = "Время работы"; extern int StartHour = 8; extern int StopHour = 22;
PHP:if(Hour()<StartHour || Hour()>=StopHour) return;
Это не реально. Только если модифицировать ордер после открытия.
Такого быть не может.Да, я это и имел в виду. Если открылся отложенный ордер(скажем байстоп) с проскальзыванием допустим в 2 пункта, то стоплосс бы модифицировался на эти же 2 пункта. Как такое может выглядеть в коде?
void modify_SL_TP_f()
{
//модификация ордера
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==magic)
{
if(Symbol()==OrderSymbol())
{
if(((OrderTakeProfit()!=OrderOpenPrice()+NormalizeDouble(TakeProfit*Point,Digits) && (OrderStopLoss()!=OrderOpenPrice()-NormalizeDouble(StopLoss*Point,Digits)) ||
(OrderOpenPrice()-NormalizeDouble(TakeProfit*Point,Digits)) && OrderOpenPrice()+NormalizeDouble(StopLoss*Point,Digits))))
{
if(OrderType()==OP_BUY) OrderModify(OrderTicket(),0,OrderOpenPrice()-NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()+NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE);
if(OrderType()==OP_SELL) OrderModify(OrderTicket(),0,OrderOpenPrice()+NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()-NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE);
if(OrderType()==OP_BUYSTOP) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()+NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE);
if(OrderType()==OP_SELLSTOP) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()-NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE);
}
}
}
}
}
}
extern string SL_TP = "Настройки SL&TP";
extern int StopLoss = 20;
extern int TakeProfit = 30;
Такого быть не может.
1)В отложенном ордере нет проскальзывания.
2)СЛ и ТП потом можно модифицировать от цены открытия. Но сначало надо открыть ордер, узнать по какой цене он открылся, выставить стопы.
Такого быть не может.
1)В отложенном ордере нет проскальзывания.
2)СЛ и ТП потом можно модифицировать от цены открытия. Но сначало надо открыть ордер, узнать по какой цене он открылся, выставить стопы.
Можно в самом конце советника поставить функцию.
PHP:void modify_SL_TP_f() { //модификация ордера for(i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i,SELECT_BY_POS); { if(OrderMagicNumber()==magic) { if(Symbol()==OrderSymbol()) { if(((OrderTakeProfit()!=OrderOpenPrice()+NormalizeDouble(TakeProfit*Point,Digits) && (OrderStopLoss()!=OrderOpenPrice()-NormalizeDouble(StopLoss*Point,Digits)) || (OrderOpenPrice()-NormalizeDouble(TakeProfit*Point,Digits)) && OrderOpenPrice()+NormalizeDouble(StopLoss*Point,Digits)))) { if(OrderType()==OP_BUY) OrderModify(OrderTicket(),0,OrderOpenPrice()-NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()+NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE); if(OrderType()==OP_SELL) OrderModify(OrderTicket(),0,OrderOpenPrice()+NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()-NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE); if(OrderType()==OP_BUYSTOP) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()+NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE); if(OrderType()==OP_SELLSTOP) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+NormalizeDouble(StopLoss*Point,Digits),OrderOpenPrice()-NormalizeDouble(TakeProfit*Point,Digits),0,CLR_NONE); } } } } } }
Ну и с самого начала.
PHP:extern string SL_TP = "Настройки SL&TP"; extern int StopLoss = 20; extern int TakeProfit = 30;
Не обязательно, но желательно в коде найти все OrderSend и поставить СЛ 0 и ТП 0. 6и7 параметр
Забыл. Сразу после int start(){Спасибо огромное, счас попробую вставить в советник
if(use_traling_stop) Traling_Stop_f();
Тьфу. Переплутал.Забыл. Сразу после int start(){
PHP:if(use_traling_stop) Traling_Stop_f();
modify_SL_TP_f();
Ты лучше-бы выбрал программиста и предложил ему в личку. Один отказался выбирай другого.поделюсь перспективным советником с торгующим программистом на условиях небольшой правки и доработки, пишите пожалуйста в личку