Киньте ссылки на формулы

 

Киньте ссылки на ВЫВОД формул расчета маржи и прибыли при маржинальной торговле валютами.


Интересует ТОЛЬКО в терминах


B - базовая валюта пары

C - валюта котировки

D - валюта депо

Ask_BC

Bid_BC


   B
------ = K 
   C 
B = Bid_BC * C
         1
C = ----------- * B
       Ask_BC 

SALE

------

1) B->C

2) C->B

3) Profit = B1-B2

4) Profit_D = ????


BUY

-----

1) C->B

2) B->C

3) Profit = C1-C2

4) Profit_D = ????


MARGIN

------------


MB = VB / Плечо --

MD = ????


***************


Ну вот примерно так, как там все считается я знаю, интересует как эит форумлы получаеются. А то :) опять не сходится. :)

 
SProgrammer >>:


Киньте ссылки на ВЫВОД формул расчета маржи и прибыли при маржинальной торговле валютами.

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

 


Как я устал - ... :) Решетов, Вы что не догоняете, что это уже прочитал . :) И не раз. И нет там этих формул и даже более того там чушь написана, скажу я по секрету. :)

 
"Поймите, прося ссылки, Вы тем самым, хотите заставить меня "поработать"? Но я то уже поработал, раньше.... и вынес это свое резюме. " (С) SProgrammer
 
AlexEro >>:
"Поймите, прося ссылки, Вы тем самым, хотите заставить меня "поработать"? Но я то уже поработал, раньше.... и вынес это свое резюме. " (С) SProgrammer

:) Умора.


Тогда сами напишите, свое мнение как это делал я. Я пруф ссылок не прошу. :)

 

Прежде чем ловить котяру в светлой комнате, необходимо знать ответ на:

что делать когда валюта депо не совпадает с валютой котировки:

- операция купли продажи, и соотв. учёт направления бид\аск

- тупой пересчет по средней, как например по курсу ММВБ на день совершения операции

- свой вариант


;) удачи в поисках!!!

 

Ранее переделал функцию из CodeBase для рассчета маржи для Buy и Sell. Так как тоже обратил внимание, что считается только по Bid...

//| Возвращает сумму залога за указанный лот
//| _Ask = true - (MODE_ASK)маржа для покупки считается
//|      = false (MODE_BID)маржа для продажи считается
double MarginCalculate(string sy ="0" , double lot= 1, bool _Ask = true)
  {
   if (sy=="0") sy=Symbol();
   string first    = StringSubstr(sy,0,3); // первый символ,   например EUR
   string second   = StringSubstr(sy,3,3); // второй символ,   например USD
   string currency = AccountCurrency();        // валюта депозита, например USD
   double leverage = AccountLeverage();        // кредитное плечо, например 100
// размер контракта, например 100000
   double contract = MarketInfo(sy, MODE_LOTSIZE);
   double priceASK_BID      = MarketInfo(sy, iif (_Ask, MODE_ASK, MODE_BID) );      
//---- допускаем только стандартные форексные символы XXXYYY
   if(StringLen(sy) != 6)
     {
      Print("MarginCalculate: '",sy,"' must be standard forex symbol XXXYYY");
      return(0.0);
     }
//---- проверка наличия данных
   if(priceASK_BID <= 0 || contract <= 0) 
     {
      Print("MarginCalculate: no market information for '",sy,"'");
      return(0.0);
     }
//---- проверяем самые простые варианты - без кроссов
   if(first == currency)   
       return(contract*lot / leverage);           // USDxxx
   if(second == currency)  
       return(contract*priceASK_BID*lot / leverage);       // xxxUSD
//---- проверяем обычные кроссы, ищем прямое преобразование через валюту депозита
   string base = currency + first;                   // USDxxx
   if(MarketInfo(base, MODE_BID) > 0) 
       return(contract / MarketInfo(base, iif (_Ask, MODE_ASK, MODE_BID))*lot / leverage);
//---- попробуем наоборот
   base = first + currency;                          // xxxUSD
   if(MarketInfo(base, MODE_BID) > 0) 
       return(contract*MarketInfo(base, iif (_Ask, MODE_ASK, MODE_BID))*lot / leverage);
//---- нет возможности прямого перерасчета
   Print("MarginCalculate: can not convert '",sy,"'");
   return(0.0);
  }//end_func
Проверьте, может ошибся. В тестере не работает однозначно.
 
Тут выкладывал правильный расчет прибыли и сравнивал с штатным расчетом MT4.
 

Гляньте вот такой скрипт кстати -

string cs[]={"EURUSD","USDJPY","EURJPY","GBPUSD"};

int start()
{
   
   for ( int i=0;i<ArraySize(cs);i++){   
      
      double ms = AccountFreeMarginCheck (cs[i], OP_SELL, 1 );
      double mb = AccountFreeMarginCheck (cs[i], OP_BUY , 1 );
      
      if ( ms != mb )
         Print(cs[i]," !=   ",DoubleToStr(ms,9),",",DoubleToStr(mb,9));
      else 
         Print(cs[i]," ==   ",DoubleToStr(ms,9),",",DoubleToStr(mb,9));
   }
}

И вот кстати и документы

http://www.fcsm.ru/catalog.asp?ob_no=3650

И вот по гуглу - Гугл поиск - site:www.fcsm.ru маржа расчет

 
getch >>:
Тут выкладывал правильный расчет прибыли и сравнивал с штатным расчетом MT4.

небольшая поправочка-уточнение к тому расчёту: на реальном межбанке не бывает плеча 1:100. Максимум, что Вам даст дружественный банк для спекуляции - это 1:10.

 
SProgrammer >>:


Как я устал - ... :) Решетов, Вы что не догоняете, что это уже прочитал . :) И не раз.

А мне это нужно, догонять или не догонять? Мне плевать с высокой колокольни, кто там устал или запарился.


Просили ссылку, получите и распишитесь в получении.


Мое дело - предложить, Ваше право - отказаться.