1. Объясните пожалуйста почему у меня прогонка в тесте по одному и тому же периоду совпадает до 55 сделки, а с 55 данные по сделкам сбиваются? Как это возможно?))
2. Я функцию прикрутить хочу - смысл в том, чтобы можно было фрахтовать деньги торгового счёта за советником для работы с одного счёта на нескольких графиках, ну чтобы не пересекались автолоты - они должны рассчитываться исходя из указанного пользователем процента фрахта денег на депозите.
Например, есть депо 200 баксов, пользователь решил на EURUSD и GPBUSD советника повесить. Соответственно он фрахтует по 50% от депозита за каждым советником в их настройках и они работают исходя из выделенного им бюджета. Или депо 1000 баксов и пользователь решает на 10 графиках работать с минимальным лотом, тогда надо будет просто указать в настройках фрахт 10%. Советник будет калькулировать исходя из депо в 100 баксов, а не 1 000. Может такая идея есть уже? Мне представляется что эту идею на 100% корректно нереально сделать из-за того что авто-лот для аварийного ордера опирается на FreeMargin()...
Предположим с самим вызовом функции защиты по убыткам, я кажись справился:
где ab - скорректированный на фрахт баланс счёта, op - сумма условных профитов/убытков по открытым позициям.
То есть смотрите, если баланс 1 000 баксав, фрахт 10%, а AccountProfit()=30, тогда (((1 030 - 30) * 0,1) + 30) =130. Итого сумма условных убытков рассчитывается корректно, а не от 1 030 баксав * (10/100) = 103 - что является некорректным значением.
С авто-лотом сложнее, из-за невозможности просчитать AccountFreeMagrgin()... пока вот такое нагородил. Работает, но через раз)))
Смотрите на фото - одни и те же настройки к разным графикам привели.
Суть в том что прогонка с депо 100 баксов и фрахтом 100% или прогонка с депо 200 баксов и фрахтом 50% должны давать одинаковый результат. И тут эти Gost Quotes (Котировки-привидения) попались на глаза. Всё сбилось. А из-за чего не пойму.
Да, и ещё, комп я не обновил - на стареньком МТ4 прогоняю. Новый хотел скачать но он не пошёл, типа ХР не поддерживается.
Кидаю файл с кодом mql4 -
там в строках 68-69 и далее с 305 строки вся заваруха началась с авто-лотом для аварийного ордера при фрахте...
А это сегодняшняя прогонка:
Так это же 2 разных советника с разными параметрами.
Попробуй последний вариант советника прогнать раз за разом с параметрами 100 и 100 потом 200 и 50. Графики одинаковые 100 100
Привет,
Инструмент один и самое главное настройки одинаковые. Да и на другом тесте тоже самое - ерунда получается- какое-то количество сделок и время и котировки одинаковы, а потом сделки перестают совпадать. В чём дело не могу понять. Вчера погонял советника, решил отвлечься от 1С программирования))) Достало. Ну и вот мысля возникла насчёт фрахта, но реализовать корректно на коленке не получилось. Сами котировки я принудительно скачал на диск за год. Может МТ4 глючит ? У меня версия до обновления - та которая с ХР работает))
Вы формулу AccountMargin() знаете?
Не думаю что моё решение по прямому умножению на коэффициент фрахта это лучшее решение. Сомневаюсь я...
Графики одинаковые. Новый вариан советника с фрахтом - СЛИВАЕТ
Если замок построен на песке - хоть тысячу подпорок поставь - все равно будет крениться и падать. Любому экономисту понятно, и объяснил уже на примере ведра с картошкой, что контр-ордера - это глупость, придуманная учителями форекса для затуманивания мозгов слушателей. Выбросьте их - советник станет проще. Добейтесь прибыльности - затем усложняйте для ее увеличения. А если очень хочется с конт-ордерами - откройте неттинговый счет на МТ5. При открытии счета убрать галочку Хеджирование. В МТ5 отсутствует куча ордеров - там одна совокупная позиция.
Купили 1 лот по цене 100 и еще 1 лот по цене 120 - результирующая позиция 2 лота по цене 110 -- усреднение
Купили 1 лот и продали 2 лота - результирующая позиция продажа 1 лот -- переворот позиции
Купили 2 лота и продали 1 лот - результирующая позиция покупка 1 лот -- частичное закрытие
Купили 1 лот и продали 1 лот -- результат позиция закрыта
Если писать без СБ и ООП - то все просто. Чуть у функции OrderSend() параметры проще и еще чуть-чуть
Если замок построен на песке - хоть тысячу подпорок поставь - все равно будет крениться и падать. Любому экономисту понятно, и объяснил уже на примере ведра с картошкой, что контр-ордера - это глупость, придуманная учителями форекса для затуманивания мозгов слушателей. Выбросьте их - советник станет проще. Добейтесь прибыльности - затем усложняйте для ее увеличения. А если очень хочется с конт-ордерами - откройте неттинговый счет на МТ5. При открытии счета убрать галочку Хеджирование. В МТ5 отсутствует куча ордеров - там одна совокупная позиция.
Купили 1 лот по цене 100 и еще 1 лот по цене 120 - результирующая позиция 2 лота по цене 110 -- усреднение
Купили 1 лот и продали 2 лота - результирующая позиция продажа 1 лот -- переворот позиции
Купили 2 лота и продали 1 лот - результирующая позиция покупка 1 лот -- частичное закрытие
Купили 1 лот и продали 1 лот -- результат позиция закрыта
Если писать без СБ и ООП - то все просто. Чуть у функции OrderSend() параметры проще и еще чуть-чуть
Когда человек приходит на форекс - у него отрубаются мозги. Этим пользуются лже-наставники и за деньги пудрят мозги: стратегия туда-сюда, контр-ордера, встречные ордера, локи, замки, разруливание локов. Время идет, денежки платим - а слышим бред. И только часть слушателей со временем это осознает. Для понятности смоделируем форекс на базаре. Посадим мысленно торговку, которая по 190 рублей ведро покупает картошку у приезжих, а продает по 200. Спред 10 рублей. Имеется хорошая ликвидность. Торговка, видя монополию, начинает увеличивать цену продажи. 210 .... 220 ... То тут подходит мужик с мешком картошки и начинает продавать по 210. Это уровень сопротивления. Когда распродаст свой мешок, вот тогда уровень сопротивления будет пробит. Потом подходит другой мужик с мешком. Ему надо быстрее, решил продать по 140. Торговка скупает у него, и цена остается прежней. Это уровень поддержки. Тут подъезжает мужик и говорит: мне на праздник надо картошки. Почем у тебя? Торговка сразу сообразила и говорит - по 250. Вышла новость и цена подскочила. Мужик купил и уехал. Видя повышение цены покупатели разошлись. Торговка снижает цену - коррекция.
Если Вы согласны, что на базаре и форексе общие законы, то начнем моделировать контр-ордера, встречные ордера, локи, замки, разруливание локов.
Если баланс счёта AccountBalance() умножить на плечо AccountLeverage() и потом вычесть AccountMargin() то что получится? AccountFreeMargin()? Может вот так тогда свободные средства по фрахту распределить:
lot=NormalizeDouble(((((AccountBalance()-AccountProfit())*FreightMoneyAccountPercent/100)+AccountProfit())*AccountLeverage()-AccountMargin())/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_CONTRACT_SIZE)*0.75,2); // расчёт авто-лота для DepositSaving с учётом фрахта средств торгового счёта
Возьми калькулятор и посчитай. Или скрипт напиши:
//+------------------------------------------------------------------+ //| Проверка. Проба | //+------------------------------------------------------------------+ #property strict void start() { double FreightMoneyAccountPercent=50; double lot=NormalizeDouble(((((AccountBalance()-AccountProfit())*FreightMoneyAccountPercent/100)+AccountProfit())*AccountLeverage()-AccountMargin())/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_CONTRACT_SIZE)*0.75,2); // расчёт авто-лота для DepositSaving с учётом фрахта средств торгового счёта Alert("Баланс = ", AccountBalance(), " Профит = ", AccountProfit(), " Фрахт = ",FreightMoneyAccountPercent, " Лот = ", lot); }
Специально наоткрывал убыточных ордеров, близок СтопОут - а формула показывает возможность еще ордер открыть...
AccountBalance() + AccountProfit()
Возьми калькулятор и посчитай. Или скрипт напиши:
Специально наоткрывал убыточных ордеров, близок СтопОут - а формула показывает возможность еще ордер открыть...
AccountBalance() + AccountProfit()

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
1. Объясните пожалуйста почему у меня прогонка в тесте по одному и тому же периоду совпадает до 55 сделки, а с 55 данные по сделкам сбиваются? Как это возможно?))
2. Я функцию прикрутить хочу - смысл в том, чтобы можно было фрахтовать деньги торгового счёта за советником для работы с одного счёта на нескольких графиках, ну чтобы не пересекались автолоты - они должны рассчитываться исходя из указанного пользователем процента фрахта денег на депозите.
Например, есть депо 200 баксов, пользователь решил на EURUSD и GPBUSD советника повесить. Соответственно он фрахтует по 50% от депозита за каждым советником в их настройках и они работают исходя из выделенного им бюджета. Или депо 1000 баксов и пользователь решает на 10 графиках работать с минимальным лотом, тогда надо будет просто указать в настройках фрахт 10%. Советник будет калькулировать исходя из депо в 100 баксов, а не 1 000. Может такая идея есть уже? Мне представляется что эту идею на 100% корректно нереально сделать из-за того что авто-лот для аварийного ордера опирается на AccountFreeMargin()...
Предположим с самим вызовом функции защиты по убыткам, я кажись справился:
где ab - скорректированный на фрахт баланс счёта, op - сумма условных профитов/убытков по открытым позициям.
То есть смотрите, если акаунт баланс 1 000 баксав, фрахт 10%, а AccountProfit()=30, тогда (((1 030 - 30) * 0,1) + 30) =130. Итого сумма условных убытков рассчитывается корректно, а не от 1 030 баксав * (10/100) = 103 - что является некорректным значением и вызывает отработку DepositSaving с авто-лотом так как отношение убытка по открытым позициям к проценту срабатывания (30%) у значения баланса выше чем у верного значения в 130.
С авто-лотом сложнее, из-за невозможности просчитать AccountFreeMagrgin()... пока вот такое нагородил. Работает, но через раз)))
lot=NormalizeDouble((((AccountFreeMargin()*FreightMoneyAccountPercent/100)*AccountLeverage())/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_CONTRACT_SIZE)*0.75),2); // расчёт авто-лота для DepositSaving с учётом фрахта средств торгового счёта
Смотрите на фото - одни и те же настройки к разным графикам привели.
Суть в том что прогонка с депо 100 баксов и фрахтом 100% или прогонка с депо 200 баксов и фрахтом 50% должны давать одинаковый результат. И тут эти Gost Quotes (Котировки-привидения) попались на глаза. Всё сбилось. А из-за чего не пойму.
Да, и ещё, комп я не обновил - на стареньком МТ4 прогоняю. Новый хотел скачать но он не пошёл, типа ХР не поддерживается.
Кидаю файл с кодом mql4 -
там в строках 68-69 и далее с 305 строки вся заваруха началась с авто-лотом для аварийного ордера при фрахте...
А это сегодняшняя прогонка: