Как написать код трейлинг стопа?
попытался сравнивать цену открытия сделки и последнего тика после того как выполнилось условия: последний тик — опен прайс>100 к примеру… закрывает сделку на моменте открытия почему то. если у кого то есть код или знает как его написать.помогите плз. мне нужно хотя бы что бы стоп в 0 переносился.
Ordermodify помоему функция называется… лучше за место тика использовать close… Алгоритм приблизительно следующий — проверить есть ли ордера октрытые (if ordertotal >0 {...), если есть выделить ордер, получить данные по ордеру какие нужны (цена открытия, стоп, профит), проверить актуальность существующих данных, и если нужно что-то менять (стоп, профит или и то и другое), то ордермодифи и все — выход из условия т.е. скобку закрываешь ...}.
Вышло интервью СЕО RENIЮлии Гадлиба на «РБК Тренды»
В статье под заголовком «От полисов к сервисам: как трансформируется страховая отрасль» Юлия поясняет, как трансформируется рынок и стратегию нашей компании. Основные тезисы: Страхование...
✈️ Прибыль авиакомпаний от продаж снизилась в 2 раза
Сальдированная операционная прибыль российских пассажирских авиакомпаний в 2025 году снизилась в 1,9 раза, до 31 млрд рублей. При этом отрасль фактически разделилась пополам – 15 перевозчиков...
Как раньше всех реагировать на новости рынка: новый инструмент в Т-Инвестициях
Чтобы получать оперативные новости, многие держат открытыми по несколько вкладок одновременно или устанавливают платные решения. Рассказываем о новом виджете, с которым узнавать о важных...
Тредер, ты реально девиантный и враль, там была ссылка на таргеты всех брокеров и их оценки
а также указан технич канал движения и одна из его возможных границ ( все это было в условиях сильного...
Мерц обратил внимание на большое количество больничных в стране, назвав это одной из ключевых проблем, тормозящих экономику. «Неужели мы действительно настолько больная нация, что имеем один из самых ...
int TrailingStop=300;
bool res;
if(TrailingStop>0)
{for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
if(OrderType()==OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Blue);
if(!res) Print(«Ошибка модификации ордера. Код ошибки=»,GetLastError());
else Print(«Цена Stop Loss ордера успешно модифицирована.»);
}
}
}
if(OrderType()==OP_SELL)
{
if(OrderOpenPrice()-Ask>Point*TrailingStop)
{
if(OrderStopLoss()>Ask+Point*TrailingStop)
{
res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+Point*TrailingStop,Digits),OrderTakeProfit(),0,Blue);
if(!res) Print(«Ошибка модификации ордера. Код ошибки=»,GetLastError());
else Print(«Цена Stop Loss ордера успешно модифицирована.»);
}
}
}
}
}