Но вообще-то мне всегда казалось, что при нетто торговле все делается проще - ДЦ для символа назначает маржу, причем в валюте счета - например 150 баксов за 1 лот по EURUSD и все. Купили, продали , не важно - цифра одна.
Это так по честному бы было. :) На практике же, как я понимаю, расчёт происходит по курсу валюты депозита отдельно на моменты открытия и закрытия позиций. И, как я понимаю, это общепринятая практика.
// Я так понял, что [максимальная] погрешность 1% у hrenfx'а в самопальном тестере, как раз исходит из отказа от синхронного пересчёта прибыли через валюту депо (с целью увеличения быстродействия).
// Как я понял из твоего вопроса, ты тоже этого ни хрена не делаешь. И это правильно. :)
- www.mql5.com
Кстати, тестер автоматически моделирует ради точного расчета профитов на любом участке истории и все связанные валюты для пересчета в валюту депозита.
Это означает, что если выбрать тест на AUDCAD при долларовом депозите, то фоном будет моделироваться и USDCAD:
2011.04.13 23:55:52 127.0.0.1 login (build 425) 2011.04.13 23:55:52 Network 3788 bytes of group info loaded 2011.04.13 23:55:52 Network 3358 bytes of tester parameters loaded 2011.04.13 23:55:52 Network 2436 bytes of input parameters loaded 2011.04.13 23:55:52 Network 275 bytes of selected symbols loaded 2011.04.13 23:55:52 Tester expert file added: Experts\Examples\Moving Average\Moving Average.ex5. 25872 bytes loaded 2011.04.13 23:55:52 Tester initial deposit 10000.00 USD, leverage 1:100 2011.04.13 23:55:52 Tester successfully initialized 2011.04.13 23:55:52 Network 37 Kb of total initialization data received 2011.04.13 23:55:52 TesterAgent Intel Xeon X5680 @ 3.33GHz, 24515 MB, PR191 2011.04.13 23:55:52 Symbols AUDCAD: symbol synchronized, 2904 bytes of symbol info received 2011.04.13 23:55:52 History AUDCAD: load 1147 Kb of history data to synchronize 2011.04.13 23:55:52 History AUDCAD: history synchronized from 2010.01.04 to 2011.04.12 2011.04.13 23:55:53 History AUDCAD: contains 367680 M1 records of beginning data from 2010.01.04 00:00 to 2010.12.31 22:58 2011.04.13 23:55:53 History AUDCAD,H1: history cache reserved for estimated 7988 bars 2011.04.13 23:55:53 History AUDCAD,H1: history begins from 2010.01.04 00:00 2011.04.13 23:55:53 Tester AUDCAD,H1 (MetaQuotes-Demo): 1 minutes OHLC ticks generating. OnTick executed on the bar begin only 2011.04.13 23:55:53 Tester AUDCAD,H1: testing of Experts\Examples\Moving Average\Moving Average.ex5 from 2011.01.01 00:00 to 2011.04.12 00:00 started with inputs: 2011.04.13 23:55:53 Tester MaximumRisk=0.02 2011.04.13 23:55:53 Tester DecreaseFactor=3.00 2011.04.13 23:55:53 Tester MovingPeriod=12 2011.04.13 23:55:53 Tester MovingShift=7 2011.04.13 23:55:53 Symbols AUDUSD: symbol to be synchronized 2011.04.13 23:55:53 Symbols AUDUSD: symbol synchronized, 2904 bytes of symbol info received 2011.04.13 23:55:54 History AUDUSD: load 1087 Kb of history data to synchronize 2011.04.13 23:55:54 History AUDUSD: history synchronized from 2010.01.04 to 2011.04.12 2011.04.13 23:55:54 Trade 2011.01.04 17:00:00 instant buy 0.20 AUDCAD at 1.00576 (1.00524 / 1.00576 / 1.00524) 2011.04.13 23:55:54 Symbols USDCAD: symbol to be synchronized 2011.04.13 23:55:54 Symbols USDCAD: symbol synchronized, 2904 bytes of symbol info received 2011.04.13 23:55:55 History USDCAD: load 2571 Kb of history data to synchronize 2011.04.13 23:55:55 History USDCAD: history synchronized from 2010.01.04 to 2011.04.12 2011.04.13 23:55:55 Trades 2011.01.04 17:00:00 deal #2 buy 0.20 AUDCAD at 1.00576 done (based on order #2)
Вкупе с историей спредов достигается точность и повторяемость тестов на истории.
Например, в МетаТрейдер 4 можно было на разных запусках даже при неизменных текущих спредах получить небольшую погрешность на пересчете профитов в валюту депозита у кроссов, но в МетаТрейдер 5 этого уже нет. Он очень чисто считает, хотя ради этого иногда приходится производить в два раза больше моделирование.
Например, в МетаТрейдер 4 можно было на разных запусках даже при неизменных текущих спредах получить небольшую погрешность на пересчете профитов в валюту депозита у кроссов, но в МетаТрейдер 5 этого уже нет. Он очень чисто считает, хотя ради этого иногда приходится производить в два раза больше моделирование.
Вот, кстати, просто шикарной опцией, была бы возможность отключать пересчёт через валюту депозита.
С полным осознанием создания погрешностей вычисления прибыли/убытков. Зато с ускорением оптимизации более чем вдвое.
// И экономией памяти тоже.
Идея бродит : а нельзя ли в самом начале оптимизации из торгуемых валютных пар + валюта депозита, построить соответствующие выбранному плечу синтетики, такие, чтоб при оптимизации не было необходимости пересчитывать прибыль через валюту депозита.
// То бишь вынести валюту депозита за скобки.
Надо завтра с бумажками посидеть посоображать, чего там со спредами/свопами.
Первое впечатление, что задачка решаемая. Тогда оптимизацию резко ускорить можно будет, причём без потери точности.
Идея бродит : а нельзя ли в самом начале оптимизации из торгуемых валютных пар + валюта депозита, построить соответствующие выбранному плечу синтетики, такие, чтоб при оптимизации не было необходимости пересчитывать прибыль через валюту депозита.
Все равно не свести к одному единственному коэффициенту (на который можно умножать любую прибыль), а придется генерить и использовать ряд значений.
У нас мультивалютный тестер, поэтому нужно общее и универсальное решение.
Все равно не свести к одному единственному коэффициенту (на который можно умножать любую прибыль), а придется генерить и использовать ряд значений.
У нас мультивалютный тестер, поэтому нужно общее и универсальное решение.
Вот, кстати, просто шикарной опцией, была бы возможность отключать пересчёт через валюту депозита.
С полным осознанием создания погрешностей вычисления прибыли/убытков. Зато с ускорением оптимизации более чем вдвое.
// И экономией памяти тоже.
У меня... :)... - в не самопальном мультивалютном тестере МТ4, все именно так и делается. Опций если мне память не изменяет только по настройкам - штук 20. Так что если есть интерес, то подождите пару месяцев - я сделаю пре-бетту, и выложу. Там на самом деле огромная работа. Но сейчас я делаю новую версию тестера, заточеенного под чистый С++ ( без МТ4-МТ5 вообще, в том - можно хоть на С++ хоть на МТ4 писать, получается DLL и она загружается как експерт. Вся библиотека МТ4 + можете просто компилировать МТ4-ые индикаторы и добавлять их в виде библиотеки. Вообщем хрень классная и очень быстрая. Историю строит сама из тиков, тики можно получить из того же МТ4 тестера и все, а можно свои. ) Вообщем, мультивалютный тестер с МТ4 + таже стандартная либа, тестер на 90% в открытом коде, так что всякие отчеты можно делать хоть вдоль хоть по поперек. Символы можно добавлять в тестирование прямо при прогоне, вообщем - не тестер а мечта. Подождите мне надо доделать просто то что сейчас я делаю. Не делайте самопалов, тот тестер по сути в открытом коде бедет - так что можно добавлять фичь по вкусу.
Но он не конкурет, как я уже писал МТ4- и МТ5 . Так как это не торговый терминал и даже в первую очередь не тестер, а оптимизатор.
-
Да все считает и свопы и есть встроенная функция для синтетики.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В статье https://www.mql5.com/ru/articles/113 подробно рассказывается про то как начисляется маржа, все понятно, но есть вопросы ... в частности - "зачем так сложно?" :)
НО здесь у меня вопрос другой - ОК, сколько замораживается понятно, но сколько возвращается? Вот вопрос?
Допустим мы продали 1 лот EURUSD - там по системе МТ5 маржа EUR, ок, пересчитали по текущему курсу к валюте счета - получили залог. Допустим 144.81. Через час КУПИЛИ также 1 лот EURUSD - причем НЕ ЗАКРЫЛИ позицию, а именно купили - взяли так же по формуле из статьи вычислили маржу получили скажем 148.23, ОК но если мы купили , то встречная позиция закрывается и маржа возвращается. :)) То есть должно вернуться сколько? 144.81 - ОК наверное так и вернется - тогда эта цифра не соответствует тому что мы рассчитали.
Получается фигня .
Но вообще-то мне всегда казалось, что при нетто торговле все делается проще - ДЦ для символа назначает маржу, причем в валюте счета - например 150 баксов за 1 лот по EURUSD и все. Купили, продали , не важно - цифра одна.
Вот такие дела. :)