Чему равна стоимость 1 пункта?

 

Как программно рассчитать, чему равна стоимость 1 пункта на текущей паре?

Допустим надо рассчитать, какой будет профит у сделки лотом 0,3 через 15 пунктов.

 
Skymer >>:

Как программно рассчитать, чему равна стоимость 1 пункта на текущей паре?

Допустим надо рассчитать, какой будет профит у сделки лотом 0,3 через 15 пунктов.

См. Азбука торговли валютами

 

От Андрея Опейды (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));
 
Skymer:

Как программно рассчитать, чему равна стоимость 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);
  }
Немного доработал...
 
Skymer:

Как программно рассчитать, чему равна стоимость 1 пункта на текущей паре?

Допустим надо рассчитать, какой будет профит у сделки лотом 0,3 через 15 пунктов.

По текущему символу:

Профит(убыток)=Лот*Пункты*MarketInfo(Symbol(), MODE_TICKVALUE); = Профит=0.3*15*MarketInfo(Symbol(), MODE_TICKVALUE);

 
artmedia70:

По текущему символу:

Профит(убыток)=Лот*Пункты*MarketInfo(Symbol(), MODE_TICKVALUE); = Профит=0.3*15*MarketInfo(Symbol(), MODE_TICKVALUE);

У интеджера правильно. Тиксайз и поинт надо обязательно учитывать, так-как они не обязаны быть равными.
Причина обращения: