![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
leonid553 |
![]()
Сообщение
#1
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
В мультивалютном советнике Rosh-a "ProtoType-IX" приведен пример определения тренда по четырем последним экстремумам. http://codebase.mql4.com/ru/1256
В аннотации указано: "Данный советник торговал без алгоритмических ошибок на чемпионате по автотрейдингу 2006 года. Требует для работы индикатор NRTR GATOR. Может являться примером мультивалютного эксперта и, надеюсь, облегчит написание такового новичкам в MQL4." Похоже пришла пора разобраться с ТРЕНДОМ, - как это делается. Хотя бы "методом тыка". Для примера можно взять любой простейший эксперт и использовать приемы определения тренда из советника "ProtoType-IX". (см. пост №2) Возьмем оттуда всё, что касается тренда и вставим в любой простейший советник. В результате получим: Function "GetSymbolString" is not referenced and will be removed from exp-file Function "PeriodNumber" is not referenced and will be removed from exp-file Function "TrendByWPR" is not referenced and will be removed from exp-file Function "SetArrow" is not referenced and will be removed from exp-file Function "SetUpArrows" is not referenced and will be removed from exp-file Function "TrendExist" is not referenced and will be removed from exp-file Мы получили шесть функций, которые вычисляются, но пока не принимают участия в торговле нашего эксперта. Поскольку, наш эксперт пусть будет НЕ МУЛЬТИВАЛЮТНЫЙ, то первая функция нам неинтересна. Вторая функция, - пожалуй, тоже, т.к. она задает таймфрейм. Но оставим пока всё как есть. Начнем с самого начала. Во внешних нашего эксперта параметрах мы добавляем: Код extern int PeriodWPR=8; extern double CriteriaWPR=25; extern int ATRPeriod=40;// период ATR для индикатора extern double kATR=0.5; extern int ZeroBar=8; // выход в безубыток через ZeroBar баров extern double MinTargetinSpread=5.0; extern double TP_SL_Criteria=2.0; extern int MaxOpenedOrders=3; extern double MaxOrderSize=5.0; Понятно что пока чего-то не хватает а что-то будет лишним. Надеюсь разберемся... Далее (после внешних параметров) задаем по аналогии глобальные переменные: Код int LastUpArray[13,7]; int PreLastUpArray[13,7]; int LastDownArray[13,7]; int PreLastDownArray[13,7]; double Complextrend[13,7];// собираем все тренды (Z,A и N тренды) в одно значение. double TPvsSL[13,7];// отношение TakeProfit к StopLoss на данном символе и таймфрейме int BestTPvsSLSymbol[20]; // лучшие символы по соотношению TP/SL int BestTPvsSLPeriod[20]; // лучшие таймфреймы по соотношению TP/SL //-------------------------------------------- string SymbolsArray[13]={"","USDCHF","GBPUSD","EURUSD","USDJPY","AUDUSD", "USDCAD","EURGBP","EURAUD","EURCHF","EURJPY","GBPJPY","GBPCHF"}; int TrendOnSymbol[13,7]; // тренд по символу и таймфрейму int MyBarsArrays[13,7];// храним количество баров по инструменту и таймфрейму int TimeNullArrays[13,7];// храним время Time[0] по инструменту и таймфрейму Не будем пока особо вникать. Посмотрим дальше... |
![]() ![]() |
leonid553 |
![]()
Сообщение
#2
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Ок!
Вот ещё идея подошла! По граалям... Изложу здесь чтобы мысль не потерялась. Вспомнилась цитата Ю.Решетова на форуме MQ: А что касаемо граалей, дык тут большого ума не надо. Надо лишь выполнить ряд условий: 1. Система должна открывать позиции либо вообще без стоплоссов, либо со стоплоссами на очень большом расстоянии, так чтобы вероятность их срабатывания была близка к 0 2. Воткнуть мощный фильтр на базе нескольких индикаторов с условиями срабатывания разделенными по логическому И (&&). И вытащить множество входных параметров этих самых индикаторов во внешние настройки МТС, так чтобы за несколько лет исторических данных на тестах открылось всего несколько позиций. 3. Ко всему этому добавить управление капиталом и риском с задранной фракцией Первое условие сразу отсекаем! А второе условие будем использовать в соотв. со здравым смыслом. Итак мы строим советник совершающий сделки "редко но метко" в соотв. с условием 2 При этом используем тактику с 2-3-мя индикаторами. Пусть он открывает сделки хотя-бы 2-4 раза в месяц. С большой вероятностью выигрыша. Далее берем другую тактику. С другими индикаторами. И строим второй советник с аналогичным результатом работы. Далее берем третью тактику ... Ну и так далее... Идея понятна! Обьединяем в один эксперт десяток-два таких "граалей" и "возрадуемся над оным" ! Думаю, что почти у всех трейдеров есть почти готовые такие тактики ,- с оч. редкими, но гарантированно прибыльными сделками. Осталось собрать их в одну кучу и соотв. образом обработать. Тут возможны вырианты: 1. Одну версию ориентировать на длинные позиции, 2. Вторую, - на короткие, 3. Третью, - исполнить по канальной тактике для тренда, 4. .... ... ... и т.п. Готовы ли посетители ветки поделиться такими версиями в конкретном исполнении? или хотя бы в общем виде? Вот уже сейчас я уже прикинул пару вариантов .... |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 13.3.2025, 14:34 |