От Андрея Опейды (njel): Функция вычисляющая стоимость одного пункта в долл. для любой валютной пары
double PipsPrise() { string Symb,S; Symb=Symbol(); S=StringSubstr(Symb,3,3); if(S=="USD")return(MarketInfo(Symb,MODE_LOTSIZE)*Point); if(S=="EUR"||S=="GBP"||S=="AUD"||S=="NZD") return(MarketInfo(Symb,MODE_LOTSIZE)*Point*MarketInfo(S+"USD",MODE_ASK)); if(S=="CHF"||S=="CAD"||S=="JPY"||S=="SEK"||S=="NOK"||S=="SGD"||S=="DKK"||S=="ZAR") return(MarketInfo(Symb,MODE_LOTSIZE)*Point*(1/MarketInfo("USD"+S,MODE_ASK))); return(0); }
double PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));
Как программно рассчитать, чему равна стоимость 1 пункта на текущей паре?
Допустим надо рассчитать, какой будет профит у сделки лотом 0,3 через 15 пунктов.
вот простейший скрипт определения стоимости пункта на любой валютной паре, фьючерсе или индексе
//+------------------------------------------------------------------+
double StoimPunkt(string B){double S = MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT));return(S);}
//+------------------------------------------------------------------+
int start(){Comment(StoimPunkt(Symbol()));}
//+------------------------------------------------------------------+
double PipPrice() { string Symb,B,S; Symb=Symbol(); S=StringSubstr(Symb,3,3); B=StringSubstr(Symb,0,3); double pip=MarketInfo(Symb,MODE_POINT); if(S=="USD") return(NormalizeDouble(MarketInfo(Symb,MODE_LOTSIZE)*pip,2)); if(B=="USD") return(NormalizeDouble(MarketInfo(Symb,MODE_LOTSIZE)*pip*(1/MarketInfo(Symb,MODE_ASK)),2)); if(S!="USD" && B!="USD") return(NormalizeDouble(MarketInfo(Symb,MODE_LOTSIZE)*pip*(MarketInfo(StringConcatenate(B,"USD"),MODE_ASK)/MarketInfo(Symb,MODE_ASK)),2)); return(0); }Немного доработал...
Как программно рассчитать, чему равна стоимость 1 пункта на текущей паре?
Допустим надо рассчитать, какой будет профит у сделки лотом 0,3 через 15 пунктов.
По текущему символу:
Профит(убыток)=Лот*Пункты*MarketInfo(Symbol(), MODE_TICKVALUE); = Профит=0.3*15*MarketInfo(Symbol(), MODE_TICKVALUE);
По текущему символу:
Профит(убыток)=Лот*Пункты*MarketInfo(Symbol(), MODE_TICKVALUE); = Профит=0.3*15*MarketInfo(Symbol(), MODE_TICKVALUE);
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как программно рассчитать, чему равна стоимость 1 пункта на текущей паре?
Допустим надо рассчитать, какой будет профит у сделки лотом 0,3 через 15 пунктов.