Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай продукты прямо в MetaTrader. Миллионы трейдеров ждут этого!
GoodPointMas
108
GoodPointMas 2015.05.17 11:39 
extern double Depo        = 0;
extern double RiskPercent = 80;
extern double Lots        = 0;
extern int    Magic       = 113355;
extern int    Slippage    = 3;
extern double StopLoss    = 100;
extern double TakeProfit  = 50;

int OnInit()
  {
   if(Digits==3 || Digits ==5)
    {
     TakeProfit*=10;
     StopLoss*=10;
     Slippage *=10;
     CandelSize *=10;
    } 
   return(INIT_SUCCEEDED);
  }
void OnTick()
{
   ....
   point=MarketInfo(pairs[MaxIndex],MODE_POINT);
   dig=MarketInfo(pairs[MaxIndex],MODE_DIGITS);


   Lots=GetLots(pair);

   //SELL
   SL=NormalizeDouble(CurrentPriceAsk+StopLoss*point,dig);
   TP=NormalizeDouble(CurrentPriceBid-TakeProfit*point,dig);
   
  OrderSend(pair, OP_SELL, Lots,CurrentPriceBid, Slippage, SL,TP,"Sell",Magic,0,Blue)
  
  //BUY
  SL=NormalizeDouble(CurrentPriceBid-StopLoss*point,dig);
  TP=NormalizeDouble(CurrentPriceAsk+TakeProfit*point,dig);
  OrderSend(pair,OP_BUY, Lots, CurrentPriceAsk,Slippage, SL,TP,"Buy",Magic,0,Green)

}
 double GetLots(string pair)
 {
   double pipValue = MarketInfo(pair,MODE_TICKVALUE);
   double lot=0;
 
   if (Depo==0)
    Depo=AccountFreeMargin();
   
   lot=NormalizeDouble(Depo*RiskPercent/100.0/StopLoss/pipValue,2);

   return lot;
 }

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

все хорошо работает скажем на AUDUSD,  с $770 = 0.6 lot , или EURJPG 

но для GBPUSD выдает ошибку "Not Enough Money"

есть идеи почему? 

Vitalie Postolache
11097
Vitalie Postolache 2015.05.17 12:55  
Надо больше денех, там же написано.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий