функция автоматического расчета размера партии? - страница 6

 
1005phillip:

С удовольствием! И спасибо, что сообщили мне, что это работает для вас, я ценю обратную связь. Не знаю точно, что пошло не так с предыдущим кодом. Вполне возможно, это была какая-то ошибка, которую я невольно исправил между ревизиями.

Вероятно, в течение недели или двух у меня будет обновленная версия, которая будет иметь некоторые функции отката для использования при бэктестинге в MT4 на кросс-валютных парах. Сейчас, если вы попытаетесь провести бэктест кросс-пары, используя мой код размера лота, ваш бэктест будет провален, потому что бэктестер не сможет получить доступ к рыночным ценам для требуемых пар счетчика и базы. (это не является проблемой в живом или форвардном тестировании, это просто ограничение бэктестера MT4).

Я опубликую код, когда перейду этот мост, возможно, вы или другие найдут его полезным.

Хороших выходных,
- Фил

Здравствуйте, 1005филлип:

Я читал эту тему. Я заинтересован в тестировании / использовании вашего кода, если он все еще доступен.

Самые актуальные файлы находятся на странице 1, или Вы предлагаете их в частном порядке?


С уважением,

spgandau

 

...и толпа громко запищала: (LOL string) "Phillip, Phillip, Phillip!" (LOL string END).

Просто чтобы сказать БОЛЬШОЕ СПАСИБО, Филипп (, Филипп, Филипп!).

Не могу сказать, что код работает у меня, я получил ту же ошибку "Error occurred while identifying SymbolType(), calculated SymbolType() = 6", что и все до меня, при бэктестинге. Полагаю, что мне придется провести форвард-тест.

Я уже отправил Санта Клаусу большое письмо для подарка на Рождество 2013:

"Дорогой Санта Клаус!

В этом году я мыл за ушами 4 раза. Так что, поскольку я был очень хорошим мальчиком, я хотел бы иметь мозг, как у Филиппа, самого щедрого кодера mql4 на этой планете. Пожалуйста, дорогой Санта, включи его возможности кодирования mql4!

Спасибо, Филипп, прости, Санта".

С наилучшими пожеланиями,

Веселитесь,


Саймон

 
1005phillip:

Рад это слышать, Шон!

Я постоянно дорабатываю коды, если вам нужна более свежая версия (в той, что у вас есть, нет ошибок), я с удовольствием ею поделюсь.

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

хорошего дня

мне нужна помощь в кодировании ea. или хотя бы в получении mq для этого конкретного индикатора

Файлы:
 
saintrose:

добрый день

мне нужна помощь в кодировании ea. или хотя бы в получении mq для этого конкретного индикатора

Спросите своего соседа или зайдите сюда: Помощь в кодировании MT4 и MT5 для людей, которые не могут быть обеспокоены обучением
 
Shawn:

Привет всем, снова вернулся к вам :-) Есть ли у кого-нибудь удобная маленькая функция на MQL4, которая автоматически рассчитывает размер лота (для любого инструмента) на основе % риска от имеющегося капитала и желаемого размера стоплосса в пунктах?


Спасибо!

Shawn

//+------------------------------------------------------------------+

//| Анализ рыночной информации |

//+------------------------------------------------------------------+

bool GetMarketInfo()

{

minSLTPdstnc = MarketInfo(Symbol(), MODE_STOPLEVEL);

if (Risk_Percentage>100 || Risk_Percentage<0 ) Risk_Percentage=10;

Margin_Required=MarketInfo(Symbol(), MODE_MARGINREQUIRED);

lotmin=MarketInfo(Symbol(), MODE_MINLOT);

lotmax=MarketInfo(Symbol(), MODE_MAXLOT);

Lot_Step=MarketInfo(Symbol(), MODE_LOTSTEP);

Lot_Size=MarketInfo(Symbol(), MODE_LOTSIZE);

Tick_Value=MarketInfo(Symbol(), MODE_TICKVALUE);

Spread=MarketInfo(Symbol(), MODE_SPREAD);

return(true);

}


//+------------------------------------------------------------------+

//| Measure Orders Lot |

//+------------------------------------------------------------------+

double CheckLots (int risk_percent,double sl_size, double Static_Lot) {

if (risk_percent<=0) return (Static_Lot);

double lots=0;

lots=NormalizeDouble( (AccountBalance()*Risk_Percentage/100) / (Tick_Value*sl_size), 2 );

if (lots*Margin_Required>AccountFreeMargin()) {

error("Недостаточно средств для взятия " + DoubleToStr(lots,2) +" лотов.");

lots=AccountFreeMargin()/Margin_Required;

}

lots=MathFloor(lots/Lot_Step + 0.5)* Lot_Step;

if ( lots < lotmin ) lots=lotmin;

if ( lots > lotmax ) lots=lotmax;

if ( lots > MaxLot ) lots = MaxLot;

return(lots);

}

 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

Общие правила и лучшие практики форума.

При размещении кода, пожалуйста, используйте кнопку SRC !


Здравствуйте,

Пожалуйста, отредактируйте свое сообщение и используйте кнопку CODE при размещении кода.

Кнопка кода в редакторе

Спасибо.

 
William Roeder:

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