друзья,
1.имею CFD сумвол, именно
US30
2. имею для него стоплосс, скажем = 300 pips
3. имею процент риска на сделку, скажем 1 процент от баланса,
то есть при закрытие по стоп-лосу, убыток должен составить 1 процент от баланса
вот спецификация
надо вычислить размер лота для торговли...
для обычных форекс символов нет проблем
Привет!
Мы севернее, у нас только 33 ))
Для CFD так:
Profit: (close_price - open_price) * Contract_Size * Lots |
Вот тут много информации о способах вычисления.
- www.mql5.com
double d_LotTrade; i_StopLossPips = 300; double d_Tickval = MarketInfo(Symbol(), MODE_TICKVALUE); double d_ROB_PerTrade = AccountBalance() * (ppd_ROB_PerTrade/100); d_LotTrade = d_ROB_PerTrade/(i_StopLossPips*d_Tickval); d_LotTrade = MathMin(MathMax(MathRound(d_LotTrade/md_LotStep)*md_LotStep,md_MinLot),md_MaxLot); return (d_LotTrade);
вот так всегда вычислял
Да, если MarketInfo(Symbol(), MODE_PROFITCALCMODE) возвращает 0 (Forex). Если возвращает 1 (CFD), то MODE_TICKVALUE уже не нужно использовать. Лот рассчитать так:
profit / ((close_price - open_price) * Contract_Size)
где:
profit - d_ROBPerTrade
close_price - Stop Loss
Contract_Size - SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE)
Да, если MarketInfo(Symbol(), MODE_PROFITCALCMODE) возвращает 0 (Forex). Если возвращает 1 (CFD), то MODE_TICKVALUE уже не нужно использовать. Лот рассчитать так:
profit / ((close_price - open_price) * Contract_Size)
где:
profit - d_ROBPerTrade
close_price - Stop Loss
Contract_Size - SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE)
здорово, спасибо, игорь,
попробую...
что-то не так, вот вычисляю лот
double cExpert::LotSize(int i_Type) { double d_LotTrade; double d_ROB_PerTrade = 100;// $100 loss when SL is hit double d_Contract_Size = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE); double d_OrderStopLoss; int i_OrderStopLossPips = 300; double d_OrderOpenPrice; if (i_Type == OP_SELL) { d_OrderStopLoss = Ask + i_OrderStopLossPips * Point; d_OrderOpenPrice = Bid; } if (i_Type == OP_BUY) { d_OrderStopLoss = Bid - i_OrderStopLossPips * Point; d_OrderOpenPrice = Ask; } d_LotTrade = d_ROB_PerTrade/(MathAbs(d_OrderStopLoss - d_OrderOpenPrice) * d_Contract_Size); d_LotTrade = MathMin(MathMax(MathRound(d_LotTrade/md_LotStep)*md_LotStep,md_MinLot),md_MaxLot); return (d_LotTrade); } //+------------------------------------------------------------------+
при депозите 10 000 получаю огромнейший нереальный лот = 32.26
само-собой, 10 000 не хватает, чтобы открыться с таким лотом
не, все в порядке, игорь, звииняй !
просто с CFD сильно не разгонишься,
поставил
double d_ROB_PerTrade = 20;// $20 loss when SL is hit
при закрытие по стоп-лосу получил убыток 20 баксов !
с меня вискарь при встрече !
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
друзья,
1.имею CFD сумвол, именно
US30
2. имею для него стоплосс, скажем = 300 pips
3. имею процент риска на сделку, скажем 1 процент от баланса,
то есть при закрытие по стоп-лосу, убыток должен составить 1 процент от баланса
вот спецификация
надо вычислить размер лота для торговли...
для обычных форекс символов нет проблем