Доброе время суток дорогие форумчане - подскажите пожалуйста по вот какой теме:
Есть открытая позиция по какому то инструменту, мне нужно рассчитать для нее TP и SL
Но я должен исходит из суммы которую могу потерять или заработать в валюте депозита.
Допустим у меня депозит 1000$
Я открыл какую то позицию и мне нужно установить SL и TP так что бы SL привел к потери 50$ а TP к 100$ условно. (то есть отталкиваюсь от того сколько я хочу потерять/заработать)
Я долго гуглил и пришел к мнению что нужно получить стоимость одного лота
А как быть дальше? - может кто ни буть нужные формулы подкинуть? я просто тупо не знаю как подсчитать это все дело.
Просто надо понять разницу между стоимостью лота и стоимостью пункта. Тогда всё получится.
К примеру: стоимость одного пункта = 1$ тогда получается, что если цена пройдёт 50 пунктов, вы потеряете 50$
Я вот щас подумал - а как быть с кредитными плечами?
Никак, они не влияют на прибыль и убыток.
Блин у меня тупняк
//Получить стоимость одного пункта в валюте депозита price_lots = OrderLots() * MarketInfo(OrderSymbol(),MODE_TICKVALUE) / ( MarketInfo(OrderSymbol(),MODE_TICKSIZE) / MarketInfo(OrderSymbol(),MODE_POINT)); //Вот тут я узнал сколько пунктов должна пройти цена что бы мой убыток составил 100$ stop_loss = 100 / price_lots;
Что мне нужно сделать со stop_loss что бы отправить ее в OrderModify - потмоу что OrderModify stop_loss ждет явно не в пунктах?
Доброе время суток дорогие форумчане - подскажите пожалуйста по вот какой теме:
Есть открытая позиция по какому то инструменту, мне нужно рассчитать для нее TP и SL
Но я должен исходит из суммы которую могу потерять или заработать в валюте депозита.
Допустим у меня депозит 1000$
Я открыл какую то позицию и мне нужно установить SL и TP так что бы SL привел к потери 50$ а TP к 100$ условно. (то есть отталкиваюсь от того сколько я хочу потерять/заработать)
Я долго гуглил и пришел к мнению что нужно получить стоимость одного лота
А как быть дальше? - может кто ни буть нужные формулы подкинуть? я просто тупо не знаю как подсчитать это все дело.
Есть функция расчета лота от стоплосса, может лучше ее использовать при открытии?
//+------------------------------------------------------------------+ //| Расчет лота в процентах, от размера стоплосса | //| MaxRisk = 5; % от свободных средств, StopLoss = 100; пункты | //+------------------------------------------------------------------+ double LotsOptimized() { double Lot; double TicVal =MarketInfo(_Symbol,MODE_TICKVALUE); // стоимость 1 пункта 1 лота double Step =MarketInfo(_Symbol,MODE_LOTSTEP); // шаг лота double Marg =AccountFreeMargin(); // свободные средства double Min_Lot =MarketInfo(_Symbol,MODE_MINLOT); // минимальный лот double Max_Lot =MarketInfo(_Symbol,MODE_MAXLOT); // максимальный лот if(Max_Lot > 201) Max_Lot = 200; else Max_Lot = Max_Lot; //проверим средства, если есть средства, то расcчитаем лот процентный в соотношении стоплосса if(Marg>TicVal*2) Lot=MathFloor((Marg*MaxRisk/100)/(StopLoss*TicVal)/Step)*Step; else Lot=Min_Lot; //нормализуем лот, согласно шага лота Lot=Step*NormalizeDouble(Lot/Step,0); if(Lot<Min_Lot) Lot=Min_Lot; if(Lot>Max_Lot) Lot=Max_Lot; return(Lot);}
Да не в том то и дело что не проще но спасибо за код.
В итоге методом тыка получилось что то такое
//Получить стоимость одного пункта в валюте депозита price_lots = OrderLots() * MarketInfo(OrderSymbol(),MODE_TICKVALUE) / ( MarketInfo(OrderSymbol(),MODE_TICKSIZE) / MarketInfo(OrderSymbol(),MODE_POINT)); //баксы делим на стоимость одного пункта получаем пукты которые можем просрать open_price = OrderOpenPrice(); take_profit = NormalizeDouble(((100 / price_lots)*0.0001)+OrderOpenPrice(),4);
жуть осталось избавится от 0.0001 которая переводит пункты в цену и округление для инструмента автоматически запилить
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброе время суток дорогие форумчане - подскажите пожалуйста по вот какой теме:
Есть открытая позиция по какому то инструменту, мне нужно рассчитать для нее TP и SL
Но я должен исходит из суммы которую могу потерять или заработать в валюте депозита.
Допустим у меня депозит 1000$
Я открыл какую то позицию и мне нужно установить SL и TP так что бы SL привел к потери 50$ а TP к 100$ условно. (то есть отталкиваюсь от того сколько я хочу потерять/заработать)
Я долго гуглил и пришел к мнению что нужно получить стоимость одного лота
//Получить стоимость одного пункта в валюте депозита price_lots = OrderLots() * MarketInfo(OrderSymbol(),MODE_TICKVALUE) / ( MarketInfo(OrderSymbol(),MODE_TICKSIZE) / MarketInfo(OrderSymbol(),MODE_POINT));
А как быть дальше? - может кто ни буть нужные формулы подкинуть? я просто тупо не знаю как подсчитать это все дело.