Добрый. Подскажите в чем может быть проблема, не перемещается ТП открытых ордеров.
Ниже код. Добавьте переменную "last_avg" типом double в глобальные переменные. Это проверка на изменение ТП, иначе каждый тик будет отправлять запрос в торговый сервер и выдавать ошибку с кодом 1
void ModifyOrderS()
{
count = 0;
avg = 0;
for (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
avg += OrderOpenPrice();
count++;
}
}
}
}
avg = NormalizeDouble(avg / count, Digits);
if (last_avg == avg) return;
for (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY)
{
double TP = NormalizeDouble(avg + Takeprofit * Point, Digits);
if (!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), TP, 0, Yellow))
Print("Ошибка модификации ордера: код ", GetLastError());
elsePrint("TP успешно модифицирован");
}
if(OrderType() == OP_SELL)
{
double TP = NormalizeDouble(avg - Takeprofit * Point, Digits);
if (!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), TP, 0, Yellow))
Print("Ошибка модификации ордера: код ", GetLastError());
elsePrint("TP успешно модифицирован");
}
}
}
}
last_avg = avg;
}
Ниже код. Добавьте переменную "last_avg" типом double в глобальные переменные. Это проверка на изменение ТП, иначе каждый тик будет отправлять запрос в торговый сервер и выдавать ошибку с кодом 1
"Эксперт" - это советник, исходя из документации. Но, где-то видел упоминание эксперта в контексте индикатора.
Если я отключу эту функцию, будет ли у меня работать советник на мартингейле, который использует стандартные индикаторы МТ4?
UPD
Данная функция отображается в окне при набрасывании советник на график
Подскажите, пожалуйста, что значит "Разрешить импорт из внешних экспертов"?
"Эксперт" - это советник, исходя из документации. Но, где-то видел упоминание эксперта в контексте индикатора.
Если я отключу эту функцию, будет ли у меня работать советник на мартингейле, который использует стандартные индикаторы МТ4?
UPD
Данная функция отображается в окне при набрасывании советник на график
Импорт из внешних экспертов на стадии вымирания.
Для того чтобы функцию можно было импортировать в другой советник, эта функция должна иметь модификатор export
Я экспериментировал с этой возможностью очень давно и подробностей совсем не помню.
ps; Вот в документации нашёл
Импорт из внешних экспертов на стадии вымирания.
Для того чтобы функцию можно было импортировать в другой советник, эта функция должна иметь модификатор export
Я экспериментировал с этой возможностью очень давно и подробностей совсем не помню.
ps; Вот в документации нашёл
Добрый. Подскажите в чем может быть проблема, не перемещается ТП открытых ордеров.
void ModifyOrderS()
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
avg += OrderOpenPrice();
count++;
}
}
}
}
avg = NormalizeDouble(avg/count, Digits);
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY)
{
TP = NormalizeDouble(avg + Takeprofit* Point, Digits);
ticket =OrderModify(OrderTicket(), OrderOpenPrice(), 0, TP, 0, Yellow);
{
// Do something to handle the error
Print("Error in OrderModify. Error code=",GetLastError());
}
}
else
if(OrderType() == OP_SELL)
{
TP = NormalizeDouble(avg - Takeprofit* Point, Digits);
ticket = OrderModify(OrderTicket(), OrderOpenPrice(), 0, TP, 0, Yellow);
{
// Do something to handle the error
Print("Error in OrderModify. Error code=",GetLastError());
}
}
}
}
}
avg = NormalizeDouble(avg/count, Digits);
}
Добрый. Подскажите в чем может быть проблема, не перемещается ТП открытых ордеров.
Ниже код. Добавьте переменную "last_avg" типом double в глобальные переменные. Это проверка на изменение ТП, иначе каждый тик будет отправлять запрос в торговый сервер и выдавать ошибку с кодом 1
Ниже код. Добавьте переменную "last_avg" типом double в глобальные переменные. Это проверка на изменение ТП, иначе каждый тик будет отправлять запрос в торговый сервер и выдавать ошибку с кодом 1
Спасибо огромное!
Подскажите, пожалуйста, как в режиме "Каждый тик на основе реальных тиков" отключить в тестере стратегий линии, соединяющие хаи и лои
Никак
Понял, благодарю
Никак
Почему никак?