Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1414

 

Хорошо, если это так, тогда я наконец-то понял основной принцип работы неттингового счета: Существует только одна позиция, которая является совокупностью всех предыдущих сделок; и тот, кто последним установил SL и TP - через метод OrderSend, через PositionModify или иным способом - установил SL и TP для всей позиции, независимо от того, устраивает это других советников или нет.

Это означает, что при использовании нескольких советников на одном и том же символе с неттинговым счетом пользователь должен знать, что он должен установить SL и TP для разных советников одинаково, чтобы они не работали не так, как планировалось изначально - если только они не выполняют защитную функцию и открывают "внутреннюю" позицию только в том случае, если на соответствующем символе не открыто ни одной позиции. И упомянутый вами PositionSelect() очень полезен для этого.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Benjamin Fotteler метод OrderSend, через PositionModify или иным способом - установил SL и TP для всей позиции, независимо от того, устраивает это других советников или нет.

Это означает, что при использовании нескольких советников на одном и том же символе с неттинговым счетом пользователь должен знать, что он должен установить SL и TP для разных советников одинаково, чтобы они не работали не так, как планировалось изначально - если только они не выполняют защитную функцию и открывают "внутреннюю" позицию только в том случае, если на соответствующем символе не открыто ни одной позиции. И упомянутый вами PositionSelect() очень полезен для этого.

Однако, чтобы подстраховаться, я бы попробовал это еще раз, чтобы посмотреть, принимаются ли SL и TP для другого ордера или лучше потом изменить SL и TP отдельно - у меня нет опыта в этом!

 
Здравствуйте добрый день, кто нибудь может мне помочь, я не могу скачать ни один индикатор mql5 для mt5, я даю скачать индикатор в mql5 у меня появляется окно с вопросом есть ли у меня mt5 я даю ему да, затем автоматически открывается mt5 в разделе разметка или рынок и ничего не скачивает.
Я попробовал ввести пользователя и пароль mql5 в mt5 в разделе инструменты, сообщество, чтобы загрузить их непосредственно mt5 непосредственно и ничего не загружается, просто делает тот же звук, когда операция не вводится или есть ошибка lotaje....

На моем ПК стоит windows 8.1 32 bit, не знаю, может операционная система как-то влияет.
Я ценю помощь спасибо большое.
 

Да, вам обязательно нужно все опробовать. Что касается неттингового счета, то я еще не делал этого, но я сделал это со значением tradeResult.deal, которое я сохранил как positionTicket.

Я понял, что если я запускаю советник и между рыночными ордерами, которые я использую только в нем (кроме SL и TP), посылаю лимитные ордера и т.п., то тикет открытой позиции совпадает не с tradeResult.deal, а с tradeResult.order. И как описано на странице свойств позиции, тикет позиции может просто меняться, а POSITION_IDENTIFIER не меняется, а остается идентичным тикету ордера, открывшего позицию, т.е. tradeResult.order входной сделки.

 

подскажите пожалуйста, кто знает где можно торговать пару USDKZT ?

 
Я только что попробовал это с неттинговым счетом. Если вы разместите рыночный ордер на продажу объемом 1 лот со стоп-лоссом на 1,1 EURUSD, а затем разместите рыночный ордер на продажу объемом 1 лот со стоп-лоссом на 1,05 EURUSD, то вся позиция неттинга объемом 2 лота будет иметь стоп-лосс на 1,05 EURUSD. Это означает, что если вы запустите на одном инструменте два конкурирующих советника, которые по-разному управляют или обрабатывают StopLoss и TakeProfit, это может привести к хаосу. Я лучше проверю в своем советнике с помощью функции PositionSelect(), не открыта ли уже позиция, и позволю своему советнику подождать, пока больше не будет позиций, прежде чем они запутаются.
 
Benjamin Fotteler #:
Я только что попробовал это с неттинговым счетом. Если вы размещаете рыночный ордер на продажу объемом 1 лот со стоп-лоссом на уровне 1,1 EURUSD, а затем размещаете рыночный ордер на продажу объемом 1 лот со стоп-лоссом на уровне 1,05 EURUSD, то вся позиция неттинга объемом 2 лота имеет стоп-лосс на уровне 1,05 EURUSD. Это означает, что если вы запустите на одном инструменте два конкурирующих советника, которые по-разному управляют или обрабатывают StopLoss и TakeProfit, это может привести к хаосу. Я лучше проверю в своем советнике с помощью PositionSelect(), не открыта ли уже позиция, и позволю своему советнику подождать, пока больше не будет позиций, прежде чем они запутаются.
Спасибо за тест! Как я и предполагал, на неттинговом счете открытые позиции не имеют "памяти". Или вы можете использовать хеджирующий счет, где каждая позиция имеет магический номер "своего" советника, который может управлять ею.
 

Я только что изучил " Проверки, которые должен пройти торговый робот ". Информация была очень полезной. Однако возник вопрос о маржин-коллах. Я не знаю, правильно ли я его понял.

В настоящее время мой советник делает две вещи, чтобы избежать маржин-колла: Перед сделкой, которая открывает или может открыть позицию, он использует OderCalcMargin(...) и ACCOUNT_MARGIN_FREE, чтобы узнать, можно ли увеличить маржу. Затем, если позиция должна быть открыта, он проверяет, превышает ли сумма денег в стоп-лоссе маржу, которую необходимо внести. И я не уверен, что не понял что-то по второму пункту.

Предположим, маржа составляет $500, рынок идет против моего направления, и мой стоп-лосс вступит в силу или сработает только при убытке в $1000. Если открытый P&L моей позиции составляет -750$, т.е. маржа в 500$ израсходована, получу ли я маржин-колл? Так имеет ли смысл проверять SL? - Это то, что я не хочу пробовать.

 
  1. Большинство брокеров больше не выставляют маржин-колл, так как все позиции закрываются (автоматически?) до того, как счет становится красным (и вам приходится добавлять деньги: маржин-колл).
  2. Маржа - это сумма, которая считается депозитом для открытой позиции, ACCOUNT_MARGIN_FREE - остаток (неиспользованная часть).
  3. Для торговли следует использовать не более 5-10 % от баланса счета (остатка) или капитала (баланс счета + открытые позиции, капитал), чтобы не допустить закрытия позиций из-за недостатка капитала и убытков по позициям.
  4. Риск позиции зависит от SL и размера лота, так как SL обычно фиксирован по техническим причинам, размер лота используется для расчета риска:
    Поиск "calculate lotize": https://www.mql5.com/en/search#!keyword=calculate%20lotsize&module=mql5_module_forum
  5. Совет: большинство статей также доступны на немецком языке, просто замените /en/ в URL на /de/: https://www.mql5.com/de/articles/2555
 
Спасибо за информацию. В разделе " Проверки, которые должен пройти торговый робот " упоминается метод "CheckMoneyForTrade", который проверяет, не превышает ли маржа, используемая для торговли, свободную маржу (ACCOUNT_FREE_MARGIN). Если я правильно вас понял, то вы также должны проверить, не превышают ли используемые средства определенный процент от баланса счета, т.е. что-то вроде:
 if (freeMargin - tradeMargin < balance * 0.9) return false;

При этом вы, конечно, можете изменить 0.9 на (1 - maxRisk) и реализовать свойство "Максимальный риск в %", которое может быть установлено пользователем.

P.S. Вы используете имя или фамилию здесь на форуме?
Причина обращения: