Не совсем понятно, что ты хочешь сказать этой заготовкой. На мой взгляд, должен получиться набор функций, считающих профит и заодно отмечающий на графике места вхождений/стопов? А движок принятия решений у каждого будет свой?
И сразу пару советов:
extern int BeginYear=2002
лучше заменить на
extern string BeginDate="2002.01.01 18:00"
- сразу можно работать с конструкцией типа
Time[i] > StrToTime(BeginDate)
Да и наверно, такие штуки
double myOrderOpenPrice=0.0; double myOrderLots=0.0;
тоже будет удобнее хранить как
#define LOTS 0; #define OPEN_PRICE 1; double MyOrder[2] = {0.0, 0.0}; ..................... MyOrder[OPEN_PRICE] = Open[i]; .....................
но это в общем-то мелочи...
#define LOTS 0;
Это же входная переменная для тестера.
А это откуда взялось?
#define OPEN_PRICE 1;
Ты не заметил, что все эти переменные (которые может лучше определить функциями)
double myOrderOpenPrice=0.0; double myOrderLots=0.0;
являются близнецами встроенных в mql-4. Я же писал, что цель такая, чтобы наш тестер и встроенный тестер понимали советника
с минимальными переделками.
Движок для принятия решений - это код советника. И он легко будет встраиваться в этот советник. А движок тестера - это функции, которые я и предлагаю
"переопределить" - то есть берется стандартная встроенная функция, к примеру OrderSend() , и по ней пишется полное подобие - myOrderSend(). И так далее.
Вечером напишу эту функцию, чтобы было понятнее.
Тщательнее надо, тщительней..:)
Это появилось недавно. При переносе текста из MQL сюда, русские буквы представляются таким вот образом. Такую же штуку с русскими буквами делает FronPage.
и сообщу ссылку.
а нельзя ли мусор стереть?
А то смотреть невозможно.
Это наверное глючек форума, хостинга или МТ при копировании скриптов с русским текстом.
Я потратил на такие тесты пару недель. На первый взгляд кажется всё просто. Набор стандартных функций - и вперёд.
Но набор этот - семечки: открытие/закрытие, подсчет профита/лосса, рисование стрелочек/черточек.
Основное и самое главное заключается в алгоритме открытия/закрытия, который, допустим, уже описан в каком-то эксперте. Перетащить этот алгоритм
целиком не получится. Только частями. А потом отслеживание "безошибочности" полученного кода... Плюс, связанные с этим процессом всякого
рода заморочки... Короче, получается написание с нуля отдельной программы на ту же тему второй раз. После всего этого за 1 секунду получаешь
либо неудовлетворительный результат, либо стрелки стоят не там, либо закрытие не в тех местах. И опять лезешь в текст программы, и опять по новой...
Мозг работает вместо отладчика, на какое-то время превращаешься в приставку для монитора... В конце концов, на третий день тест проходит
вроде бы нормально, но убеждаешься, что стратегия "не очень". И на этом этапе, практически всё! Т.к. проверять таким образом следующую стратегию
не возникает никакого желания. Для чего я всё это написал? Идея привлекательная. И в принципе работающая. Но, поверьте, наскоком она
не решается. Если говорить о шаблоне, то это должен быть очень фундаментальный шаблон, т.е. очень приличная, продуманная разработка. В общем,
программа не из самых простых. И если кто-то после прочтения данного опуса не будет ломать копья в рамках описанного, т.е. воспользуется этим моим
небольшим, но всё-таки практическим опытом и двинется дальше, не теряя понапрасну времени, то, может, что-то и получится. Тогда все страждущие
(и я в том числе) скинутся и поставят автору памятник. :)
использовать родные советники с косметическими переделками. Первой "жертвой" намечен MACD_sample.mq4 .
а нельзя ли мусор стереть?
А то смотреть невозможно.
Это наверное глючек форума, хостинга или МТ при копировании скриптов с русским текстом.
"Мусор" убран. Программеры , наверно, знают - как в лом этот мусор(комментарии) писать :)
Кто-нибудь знает - правильно я определил на основе стандвартных эти константы?
int myOP_BUY=0; int myOP_SELL=1; int myOP_BUYLIMIT=2; int myOP_BUYSTOP=3; int myOP_SELLLIMIT=4; int myOP_SELLSTOP=5;
имеются ввиду конкретные значения.
int myOP_BUY=OP_BUY; int myOP_SELL=OP_SELL; int myOP_BUYLIMIT=OP_BUYLIMIT; int myOP_BUYSTOP=OP_BUYSTOP; int myOP_SELLLIMIT=OP_SELLLIMIT; int myOP_SELLSTOP=OP_SELLSTOP;
Правда, не знаю заранее реакцию компилятора, пропустит он торговые константы в теле индикатора или нет?
Скорей всего пропустит.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Шаблон написал, необходимо реализовать торговые функции посредством написания собственных функций.
Кто спец - присоединяйтесь. Торговые функции через манипуляции массивами. Также нужны спецы по нанесению объектов на график - изображать стрелками/черточками уровни открытия, стопов и тейк-профитов.
Также необходимо организовать вывод в файл истории ордеров и числовых серий для открытия диаграмм в Excel'е. В общем, все по взрослому :)
Все в принципе продумал, но я не универсал.
Идеи могу высказать, если будут желающие. К тому же, возможно, самопальный вариант в некоторых случаях оптимизации по быстродействию сможет обойти встроенный.