как проверить? у меня ошибка по хеджированию в USD/EUR
2018.05.12 21:13:01.827 Core 1 1971.05.26 00:00:00 Только хеджирование!
2018.05.12 21:13:01.827 Core 1 тестер остановлен из-за сбоя OnInit
Как протестировать? У меня есть ошибка по хеджированию в USD/EUR
2018.05.12 21:13:01.827 Core 1 1971.05.26 00:00:00 Только хеджирование!
2018.05.12 21:13:01.827 Core 1 тестер остановлен из-за сбоя OnInit.
Данный советник может работать только на торговых счетах с системой хеджирования позиций.
Как протестировать? У меня есть ошибка по хеджированию в USD/EUR
2018.05.12 21:13:01.827 Core 1 1971.05.26 00:00:00 Только хеджирование!
2018.05.12 21:13:01.827 Core 1 tester stopped because OnInit failed
Обратите внимание, что при запуске проверяется, является ли ваш тип счета хеджируемым, иначе возвращается ошибка инициализации.
Вы можете удалить этот кусок кода, но это противоречит задумке автора. Или откройте хеджирующий счет, при открытии которого вы должны отметить эту опцию, все новые счета по умолчанию рождаются как неттинговые.
Секция, которая проверяет ваш счет, находится:
int OnInit() { SetMarginMode(); if(!IsHedging()) { Print("Hedging only!"); return(INIT_FAILED); } ... }
references:
https://www.mql5.com/ru/docs/constants/environment_state/accountinformation
https://www.mql5.com/pt/forum/91033
Attn,
Джонатан Перейра
- www.mql5.com
Код
//+------------------------------------------------------------------+ //| Функция TradeTransaction| //+------------------------------------------------------------------+ void OnTradeTransaction ( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- получаем тип транзакции в виде значения перечисления ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- если транзакция является результатом добавления транзакции в историю if (type== TRADE_TRANSACTION_DEAL_ADD ) { long deal_entry = 0 ; double deal_profit = 0.0 ; string deal_symbol = "" ; long deal_magic = 0 ; if ( HistoryDealSelect (trans.deal)) { deal_entry= HistoryDealGetInteger (trans.deal, DEAL_ENTRY ); deal_profit= HistoryDealGetDouble (trans.deal, DEAL_PROFIT ); deal_symbol= HistoryDealGetString (trans.deal, DEAL_SYMBOL ); deal_magic= HistoryDealGetInteger (trans.deal, DEAL_MAGIC ); } else return ; if (deal_symbol== Symbol () && deal_magic==m_magic) if (deal_entry== DEAL_ENTRY_OUT ) { if (deal_profit> 0 ) lot_last=InpLot; else { lot_last=InpLot* 1.6 ; lot_last=LotCheck(lot_last); } } } }
означает:
Если мы берем сделку OUT (Out of the Market) и прибыль от сделки отрицательная, мы увеличиваем "объем" на 1,6.
Подтверждаю,
Покупка => закрытие бара 3 > закрытие бара 2 и закрытие бара 2 > закрытие бара 1
Продажа => закрытие бара 3 < закрытие бара 2 и закрытие бара 2 < закрытие бара 1
Бар 1 - текущий, бар 2 - предыдущий, а бар 3 - тот, что перед баром 2.
Правильно ли это? Спасибо.
Извините, я не понимаю. Даже Переводчик Гул не помогает. Я не понимаю ни одного Вашего слова.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
E-Skoch-Open:
Автор: Vladimir Karputov