Скачать MetaTrader 5

Какой реальный процент ГО доступен для лимиток (Si, RTS)?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
ProfitTraderRU
185
ProfitTraderRU  
Добрый день, уважаемые форумчане!

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

1. Свободно X денег. Без позиции.
2. Купил N контрактов
3. Перевернулся (2*N) контрактов
4. В позиции на N контрактов

Торговля лимитным ордерами. Si, RTS. Брокер Открытие. Если есть пример кода проверки достаточности средств - буду очень признателен, было бы полезно многим.
Sergey Chalyshev
4903
Sergey Chalyshev  
ProfitTraderRU:
Добрый день, уважаемые форумчане!

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

1. Свободно X денег. Без позиции.
2. Купил N контрактов
3. Перевернулся (2*N) контрактов
4. В позиции на N контрактов

Торговля лимитным ордерами. Si, RTS. Брокер Открытие. Если есть пример кода проверки достаточности средств - буду очень признателен, было бы полезно многим.

#property script_show_inputs

input ENUM_ORDER_TYPE typ = ORDER_TYPE_BUY_LIMIT;
input double volum = 1.0;
input double price = 0.0; // price (если=0.0 то по цене Ask)
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   double iprice=price;
   if(price==0.0) iprice=tick.ask;
   bool res;
   double margin=0.0;
   res=OrderCalcMargin(typ,_Symbol,volum,iprice,margin);
  
   MqlTradeRequest request={0};
   MqlTradeCheckResult result={0};

   request.action=TRADE_ACTION_PENDING;
   request.symbol=_Symbol;
   request.volume=volum;
   request.price=iprice;
   request.type=typ;
   request.type_filling=ORDER_FILLING_RETURN;
   request.type_time=ORDER_TIME_DAY;
  
   ResetLastError();
  
   res=OrderCheck(request,result);
  
   Comment(
   "\n Размер маржи, необходимой для указанного типа ордера  = ",margin,
   "\n Размер маржи (средств) необходимый для требуемой торговой операции = ",result.margin,
   "\n Размер свободных собственных средств, которые останутся после выполнения требуемой торговой операции = ",result.margin_free,
   "\n res=",res,
   "\n retcod=",result.retcode,
   "\n retcod comment=",result.comment,
   "\n error=",GetLastError(),
   "");
  
  }
//+------------------------------------------------------------------+


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

Правда для рыночных ордеров ORDER_TYPE_BUY и ORDER_TYPE_SELL, неправильно вычисляется, или у брокера неправильно настроено.


ProfitTraderRU
185
ProfitTraderRU  
Sergey Chalyshev:

#property script_show_inputs

input ENUM_ORDER_TYPE typ = ORDER_TYPE_BUY_LIMIT;
input double volum = 1.0;
input double price = 0.0; // price (если=0.0 то по цене Ask)
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   double iprice=price;
   if(price==0.0) iprice=tick.ask;
   bool res;
   double margin=0.0;
   res=OrderCalcMargin(typ,_Symbol,volum,iprice,margin);
  
   MqlTradeRequest request={0};
   MqlTradeCheckResult result={0};

   request.action=TRADE_ACTION_PENDING;
   request.symbol=_Symbol;
   request.volume=volum;
   request.price=iprice;
   request.type=typ;
   request.type_filling=ORDER_FILLING_RETURN;
   request.type_time=ORDER_TIME_DAY;
  
   ResetLastError();
  
   res=OrderCheck(request,result);
  
   Comment(
   "\n Размер маржи, необходимой для указанного типа ордера  = ",margin,
   "\n Размер маржи (средств) необходимый для требуемой торговой операции = ",result.margin,
   "\n Размер свободных собственных средств, которые останутся после выполнения требуемой торговой операции = ",result.margin_free,
   "\n res=",res,
   "\n retcod=",result.retcode,
   "\n retcod comment=",result.comment,
   "\n error=",GetLastError(),
   "");
  
  }
//+------------------------------------------------------------------+


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

Правда для рыночных ордеров ORDER_TYPE_BUY и ORDER_TYPE_SELL, неправильно вычисляется, или у брокера неправильно настроено.


Благодарю Вас, Сергей!
prostotrader
3342
prostotrader  
ProfitTraderRU:
Добрый день, уважаемые форумчане!

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

1. Свободно X денег. Без позиции.
2. Купил N контрактов
3. Перевернулся (2*N) контрактов
4. В позиции на N контрактов

Торговля лимитным ордерами. Si, RTS. Брокер Открытие. Если есть пример кода проверки достаточности средств - буду очень признателен, было бы полезно многим.

https://www.mql5.com/ru/forum/94396/page4#comment_2783728

Money Management и отложенные ордера
Money Management и отложенные ордера
  • www.mql5.com
При установке отложенного ордера, проверяются свободные средства...
Aleksey Altukhov
1191
Aleksey Altukhov  
ProfitTraderRU:
Добрый день, уважаемые форумчане!

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

1. Свободно X денег. Без позиции.
2. Купил N контрактов
3. Перевернулся (2*N) контрактов
4. В позиции на N контрактов

Торговля лимитным ордерами. Si, RTS. Брокер Открытие. Если есть пример кода проверки достаточности средств - буду очень признателен, было бы полезно многим.

на mql4:

...
   if (AccountFreeMarginCheck(Symbol(), OP_BUY, bl) >= 0) {
      if (CountBuyTrades() == 0) b = Ask;
      if (b >= Ask) {
         RefreshRates();
         OrderSend(Symbol(), OP_BUY, bl, Ask, In, 0, 0, "Martin ("+In+")", In, 0, Blue);
         b = FindLastBuyPrice() - In * Point;
      }
   }
...


 

prostotrader
3342
prostotrader  
Aleksey Altukhov:

на mql4:

...
   if (AccountFreeMarginCheck(Symbol(), OP_BUY, bl) >= 0) {
      if (CountBuyTrades() == 0) b = Ask;
      if (b >= Ask) {
         RefreshRates();
         OrderSend(Symbol(), OP_BUY, bl, Ask, In, 0, 0, "Martin ("+In+")", In, 0, Blue);
         b = FindLastBuyPrice() - In * Point;
      }
   }
...


 

Здесь нет MQL4, только MQL5
Aleksey Altukhov
1191
Aleksey Altukhov  
prostotrader:
Здесь нет MQL4, только MQL5
https://www.mql5.com/ru/search#!keyword=AccountFreeMarginCheck%20mql5
prostotrader
3342
prostotrader  
Aleksey Altukhov:
https://www.mql5.com/ru/search#!keyword=AccountFreeMarginCheck%20mql5

Здесь обсуждают только биржевую торговлю на МТ5

А для МТ4 сюда

https://www.mql5.com/ru/forum/mql4 

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий