А у меня опять цифры не сходятся. :)

 

Вот постотрите скрипт -

#include <stdlib.mqh>
#include <stderror.mqh>

double GBPUSD_ask[10];
double GBPUSD_bid[10];
double GBPUSD_v[10];
double GBPUSD_t[10];
   
double GBPJPY_ask[10];
double GBPJPY_bid[10];
double GBPJPY_v[10];
double GBPJPY_t[10];
   
double USDJPY_ask[10];
double USDJPY_bid[10];
double USDJPY_v[10];
double USDJPY_t[10];


double balance[10];
double margin[10];
double equity[10];



void mout ( int i )
{   
   Print("#",i," GBPUSD Ask:",DoubleToStr(GBPUSD_ask[i],9)," Bid:",DoubleToStr(GBPUSD_bid[i],9)," time:",GBPUSD_t[i]," v:",GBPUSD_v[i]);
   Print("#",i," GBPJPY Ask:",DoubleToStr(GBPJPY_ask[i],9)," Bid:",DoubleToStr(GBPJPY_bid[i],9)," time:",GBPJPY_t[i]," v:",GBPJPY_v[i]);
   Print("#",i," USDJPY Ask:",DoubleToStr(USDJPY_ask[i],9)," Bid:",DoubleToStr(USDJPY_bid[i],9)," time:",USDJPY_t[i]," v:",USDJPY_v[i]);  
}
void mtake (int i)
{

   GBPUSD_ask[i] =MarketInfo("GBPUSD",MODE_ASK);
   GBPUSD_bid[i] =MarketInfo("GBPUSD",MODE_BID);
   GBPUSD_v[i]      =iVolume("GBPUSD",PERIOD_M1,0);
   GBPUSD_t[i]   =MarketInfo("GBPUSD",MODE_TIME);
   
   GBPJPY_ask[i] =MarketInfo("GBPJPY",MODE_ASK);
   GBPJPY_bid[i] =MarketInfo("GBPJPY",MODE_BID);
   GBPJPY_v[i]      =iVolume("GBPJPY",PERIOD_M1,0);
   GBPJPY_t[i]   =MarketInfo("GBPJPY",MODE_TIME);
   
   USDJPY_ask[i] =MarketInfo("USDJPY",MODE_ASK);
   USDJPY_bid[i] =MarketInfo("USDJPY",MODE_BID);
   USDJPY_v[i]=      iVolume("USDJPY",PERIOD_M1,0);
   USDJPY_t[i]   =MarketInfo("USDJPY",MODE_TIME);

}
void aout ( int i )
{
   Print("#",i," Balance:",balance[i]," Margin:", margin[i]," Equity:",  equity[i] );
   
}
void atake ( int i )
{
   balance[i] = AccountBalance();
   margin[i]  = AccountMargin();
   equity[i]  = AccountEquity() ;
}
int start()
  {
   
   Print("GBPJPY Lot:",MarketInfo("GBPJPY",MODE_LOTSIZE));
   
   atake(0);
   mtake(0);
   
   datetime t0=TimeCurrent();
   int i0=GetTickCount();
   
   
   int ti=OrderSend ( "GBPJPY", OP_SELL, 1, GBPJPY_bid[0], 0, 0,0, "Comment", 12345, 0, CLR_NONE );
   int err=GetLastError();
     
   if ( ti > 0 ){
      atake(1);
      mtake(1);
      OrderClose ( ti, 1, GBPJPY_ask[0],0, CLR_NONE );
      atake(2);
      mtake(2);
      
      datetime t2=TimeCurrent();
      int i2=GetTickCount();
      
      aout(0);mout(0);
      aout(1);mout(1);
      aout(2);mout(2);
      
      Print("dt=",t2-t0," di=",i2-i0);
      
      
   }
   else{   
       Print ( "error(",err,")", "--", ErrorDescription(err)  );
   }   
}
  

Посмотрите он специально просто написан. Проанализируйте что он делает - он просто фиксирует состояние рынка в разные моменты времени, и открывает один ордер в 1 лот и тут же его удалет. Уменя валбта депозита USD. Посмотрите и потом проанализируйте его лог и результаты -

2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: removed
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: uninit reason 0
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: dt=4 di=3775
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #2 USDJPY Ask:91.15300000 Bid:91.13500000 time:1263565712 v:21
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #2 GBPJPY Ask:148.64000000 Bid:148.56500000 time:1263565712 v:42
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #2 GBPUSD Ask:1.63049000 Bid:1.63018000 time:1263565712 v:41
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #2 Balance:3607.12 Margin:0 Equity:3607.12
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #1 USDJPY Ask:91.15300000 Bid:91.13500000 time:1263565712 v:21
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #1 GBPJPY Ask:148.64000000 Bid:148.56500000 time:1263565712 v:42
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #1 GBPUSD Ask:1.63049000 Bid:1.63018000 time:1263565712 v:41
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #1 Balance:3686.11 Margin:1630.335 Equity:3607.12
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #0 USDJPY Ask:91.15300000 Bid:91.13500000 time:1263565712 v:21
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #0 GBPJPY Ask:148.64000000 Bid:148.56500000 time:1263565712 v:42
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #0 GBPUSD Ask:1.63049000 Bid:1.63018000 time:1263565712 v:41
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: #0 Balance:3686.11 Margin:0 Equity:3686.11
2010.01.15 17:28:33 Удали меня 2 GBPJPY,M1: close #36027605 sell 1.00 GBPJPY at 148.562 at price 148.634
2010.01.15 17:28:31 Удали меня 2 GBPJPY,M1: open #36027605 sell 1.00 GBPJPY at 148.562 ok
2010.01.15 17:28:29 Удали меня 2 GBPJPY,M1: GBPJPY Lot:100000
2010.01.15 17:28:29 Удали меня 2 GBPJPY,M1: loaded successfully

Посмотрите по какой цене ордер открылся. Какая маржа была взята.

И пожалуйста, действительно прошу - если не трудно, обьясните как это получается.

 
Это типа демо счет. Не тестер. :)
 
SProgrammer >>:

волшебство, не иначе))
Margin=GBPJPY_Lot*(GBPUSD_Ask+GBPUSD_Bid)/2/плечо.

 
Swan >>:

волшебство, не иначе))
Margin=GBPJPY_Lot*(GBPUSD_Ask+GBPUSD_Bid)/2/плечо.

Ок эту цифру понятно как получили :)


Но откуда взялась такая форумла?


Ведь мы продаем JPY в обьеме равном одному стандартному лоту на этой паре. Этот один лот, причем в базовой валюте пары. Таким образом если у нас по спецификации пары лот на ней равен 100000 GBP. Ну и маржа как известно считается как обьем деленный на плечо. То 100000 GBP / 100 = 1000 GBP.


То есть залог = 1000 GBP


Далее м можно считать двумя путями :)


Первый - типа мы же продаем JPY в этом обьеме значит надо 1000 GBP перевести в JPY по текущему курсу - то есть узнать сколько надо JPY-пиков для того чтобы купить 1000 фунтиков, далее уже надо из нашего депозита купить нужную сумму JPY-ков.

И второй - взять эту 1000 фунтов и рассматривать именно ее как залог. То есть надо купить 1000 фунтов за валюту депозита, то есть за баксы.


***********


Это первая "проблека" а вторая. Ордер по какой цене открылся? :)

 
SProgrammer >>:

Ок эту цифру понятно как получили :)


Но откуда взялась такая форумла?

отсюда:

И второй - взять эту 1000 фунтов и рассматривать именно ее как залог. То есть надо купить 1000 фунтов за валюту депозита, то есть за баксы.

;)

 
kombat >>:

отсюда:

;)


Если отсюда то формула НЕПРАВИЛЬНАЯ. :)


По какой цене ПОКУПАЮТ валюту? :)

 
SProgrammer >>:

Если отсюда то формула НЕПРАВИЛЬНАЯ. :)


По какой цене ПОКУПАЮТ валюту? :)

хочешь, чтоб и с маржи спред брали?)

 
SProgrammer >>:

Если отсюда то формула НЕПРАВИЛЬНАЯ. :)


По какой цене ПОКУПАЮТ валюту? :)

по правильной...

:)))

Покупается и продаётся базовая валюта пары.

Соответственно и залог под сумму этой валюты.

Ежли она не совпадает с валютой депо, то соотв. пересчёт по курсу.

 
Swan >>:

хочешь, чтоб и с маржи спред брали?)

Ну это какая-то лирика. :) В финансах так не бывает. Типа где-то около того. :) Тут все строго.


Ну по итогу кстати - прибыль по ордеру получается в каких величинах? :)


Так что тут спреда как бы даже и не один. :)


Но формула неверная. :)

 
kombat >>:

по правильной...

:)))

Покупается и продаётся базовая валюта пары.

Соответственно и залог под сумму этой валюты.

Ежли она не совпадает с валютой депо, то соотв. пересчёт по курсу.

Аааааа, я опять ща, заплачу... Робяты вы чо?


ПОКУПАЕТСЯ не ПО КУРСУ, бля... :) а у нас две цены - бид и аск. Так по какому ПОКУПАЕТСЯ фунт за наши кровные демонстрационные депозитные баксы?

 
SProgrammer >>:

Аааааа, я опять ща, заплачу... Робяты вы чо?


ПОКУПАЕТСЯ не ПО КУРСУ, бля... :) а у нас дву цены - биду и аску. Так по какому ПОКУПАЕТСЯ фунт за наши баксы с депо?


как спросил так и ответили...

:))))))))))))))))))))

Причина обращения: