вопрос к математикам - страница 2

 
Yury Stukalov:

была иногда посещал 6,7,8 классы даже когда в школу не приходил была стабильно 5 и весь класс у меня списывал

потом съехал на четыре так и закончил школу

, чё не так с вопросом

Вот и выводите формулу. А как ее выводить - подсказано.

 
double profit_positions = 0;
double Lot = 0;    // Высчитываем лот который у нас останется после вычитания меньшего лота направления из большего
/* расчитываем лот и текущий профит */
double tick_value = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)*Lot;
double take_profit = profit_positions < 0 ? (MathAbs(profit_positions) + 10) : (10 - profit_positions);
int pipsProfit = (int)MathFloor( take_profit / tick_value ); // сколько пунктов нужно отступить от текущей цены. Выше, или ниже в зависимости от того куда у нас больше лот
Написал на коленке. Если ни чего не упустил, то вполне должно быть рабочим вариантом.
Само собой если один символ. С разными все нужно делать на лету.
 
Yury Stukalov:

да при общем профите в 10 долларов все 4 сделки по цене 0,75842 будут закрыты

первая и третья с убытком вторая и четвёртая с прибылью если всё сложить получится +10 долларов сейчас не учитываем не спред не своп не проскальзывания

чисто теоретически как найти 0,75842 вот это число?

У меня в функции расчета единого ТП для однонаправленных ордеров, такая формула:

  // --- Кол-во пунктов для единого ТП = общий профит / (ст-ть пункта * сумма всех лотов)
    totalPoints = profitMoney / (MarketInfo(Symbol(), MODE_TICKVALUE) * sumLots);

profitMoney - это сколько хотим получить прибыли в денежном выражении.

В вашем случае организуйте расчет profitMoney = 10 дол. + убыток по модулю. Т.е. если убыток -20 дол, а профит нужен 10 дол., тогда profitMoney  = 30 дол.

sumLots = это разница между лотами двух направлений.

По идее, должно выдать, то что нужно.

 

Выразил формулу:

CPB = (Прибыль$ + Сумма(BO*BL*PC) - Сумма(SO*SL*PC) + Сумма(S*SL*PC))/(Сумма(BL*PC)- Сумма(SL*PC))

CPB - искомая цена закрытия (бид)

ВО - цена открытия бай

BL - лот бай

PC - стоимость пункта

SО - цена открытия селл

SL - лот селл

---

Осталось определиться со стоимостью пункта.

 
Вообще это все чисто теория. Будет работать только на постоянно жестком спреде. Чего даже у "лучшего брокера" не наблюдается, все равно бывают скачки. Как уже говорил выше, лучше с разнонаправленными позициями работать с лету. Иначе при расхождении/сужении спреда, легко поймать проблему. Закрытие то происходит по ASK и BID разных направлений.
 
void OnStart(){

double SumBuyPriceLots=0.01*0.77972+0.03*0.77386;
double SumSellPriceLots=0.02*0.77386+0.04*0.76837;
double SumBuyLots=0.01+0.03;
double SumSellLots=0.02+0.04;

double ZP=ZeroPrice(SumBuyPriceLots,SumSellPriceLots,SumBuyLots,SumSellLots);

double Profit=10; // требуемая прибыль $
double PointValue=10; // стоимость пункта
double P=0.00001; // Point

double TP=ZP+Profit/((SumBuyLots-SumSellLots)*PointValue)*P;
Alert(TP); //0.75855
   
}
//+------------------------------------------------------------------+

double ZeroPrice(double SumBuyPriceLots,double SumSellPriceLots,double SumBuyLots,double SumSellLots){
   double dSpread=0.0003;//Ask-Bid;
   return((SumBuyPriceLots-SumSellPriceLots+dSpread*SumSellLots)/(SumBuyLots-SumSellLots));
}

Вот так вот. С ответом немного не сходится - получается  0.75855 вместо 0.75842. Надо спред покрутитить в пятом знаке.

---

Покрутил спред, получается 0.00034 - 0.00035

 

раз уж спреды и проскальзывание не волнуют, то

считайте как будто на каждом шаге предыдущую сделку закрываете,

а полученный профит добавляете в копилку. (или отнимаете убыток )

следующую цель ставите чтобы в копилке вышло 10$.

---

на сколько пунктов поставить TakeProfit чтобы с N лотов заработать K баксов выше наверное написали :-)


 
Dmitry Fedoseev:

Вот так вот. С ответом немного не сходится - получается  0.75855 вместо 0.75842. Надо спред покрутитить в пятом знаке.

---

Покрутил спред, получается 0.00034 - 0.00035

круто снимаю шляпу
 
Yury Stukalov:
круто снимаю шляпу

Я всегда думал что её можно только закатить. 

 
Vitaly Muzichenko:

Я всегда думал что её можно только закатить. 

ну уууууу а и про что ты написал по подробней к чему ты это?

что у тебя в голове ?

о чём ты думаешь ?

поясни может тут один я такой тупой не понимаю к чему твой коментарий ?

я задал теоретическую задачу ,человек написал скрипт который считает результат , вывел формулу

я в свою очередь написал круто , снимаю шляпу - это означает что человек молодец  как профессионал   как программист знает своё дело , круто уважаю таких

и тут вдруг откуда не возьмись появился ты с коментарием

Vitaly Muzichenko:

Я всегда думал что её можно только закатить.

поясни к чему ты это написал ?