[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 10

 
volshebnik:
Сколько я пробовал из "Code Base", ничего прибыльного не было (не до конца её ещё прошёл). Иначе бы уже на реал поставил. В оптимизации - хорошо, в тесте - плохо. Просто такой перебор всех МА в оптимизации, как мне кажется, даст лучший вариант в моей стратегии, пока в ней МА (5), МА(12), МА(18), МА (23) и МА(28). Но это могут быть не самые лучшие МА. И, чем заниматься с каждой из них (также и их пересечениями), не проще ли прогнать генетическим алгоритмом в оптимизации для выбора лучших МА ? Вот и появился такой вопрос в моём предыдущем посте.

Там по-моему, логика решения хромает. Грамотно сформулируйте задачу (можно без Вашего кода), немного от него абстрагируйтесь и напишите внятно условия задачи...
 
Roman.:

Там по-моему, логика решения хромает. Грамотно сформулируйте задачу (можно без Вашего кода), немного от него абстрагируйтесь и напишите внятно условия задачи...
Задача: Ждём перелом МА, дальше - первый фрактал. И пробитие первого фрактала является сигналом к сделке. Но при разных периодах МА фракталы могут быть в разных местах(по времени), т.к. в зависимости от периода и типа сглаживания одни МА "изламываются" раньше, другие - позже и, соответственно, сигналы на сделку - разные. Вот и хочу перебрать все МА, чтобы выявить, какая из них лучше (прибыльней) даёт сигнал (если они вообще верные, не могу пока утверждать). Перебирать и прогонять каждую МА из 50 периодов да ещё из 4-х вариантов - експоненциальная, сглаженная и т.д. - очень-очень долго. А если в оптимизации вынести во внешнюю переменную Период МА, TP и SL, то сразу и покажет, что лучше. Но оптимизация не идёт дальше Периода МА = 7 почему-то. Вот и ищу помощи.
 
volshebnik:
Задача: Ждём перелом МА, дальше - первый фрактал. И пробитие первого фрактала является сигналом к сделке. Но при разных периодах МА фракталы могут быть в разных местах(по времени), т.к. в зависимости от периода и типа сглаживания одни МА "изламываются" раньше, другие - позже и, соответственно, сигналы на сделку - разные. Вот и хочу перебрать все МА, чтобы выявить, какая из них лучше (прибыльней) даёт сигнал (если они вообще верные, не могу пока утверждать). Перебирать и прогонять каждую МА из 50 периодов да ещё из 4-х вариантов - експоненциальная, сглаженная и т.д. - очень-очень долго. А если в оптимизации вынести во внешнюю переменную Период МА, TP и SL, то сразу и покажет, что лучше. Но оптимизация не идёт дальше Периода МА = 7 почему-то. Вот и ищу помощи.


Решение:

Приведу для бай (селл - по аналогии):

1. перелом МА - получаем значения МА на 3-м, 2-м и 1-ом барах - сравниваем. Если значения МА на барах №№ 3>2 и 2<1, то это перелом.

2. далее - фрактал - пробитие - сигнал к сделке

   
   double fractal_l;
   double fractal_h;
     
   fractal_h = iFractals(Symbol(),PERIOD, MODE_UPPER, 3);
   if(fractal_h!=0)  upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3); 
   
   fractal_l = iFractals(Symbol(), PERIOD, MODE_LOWER, 3);
   if(fractal_l!=0)  dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3); 

   if (Ask > upfractal) {открытие ордеров при пробитии последнего (свежайшего) фрактала }


3. Что касается перебора МА - во внешние (оптимизируемые) переменные выносите:

Period_MA (можете ставить от 2 до 240 с шагом 2), MODE - (метод вычисления МА - диапазон изменений от 0 до 3 шаг 1), PRICE_TYPE - (ценовая константа - диапазон изменений от 0 до 6 шаг 1 ), слышал, что при работе внутри дня разумнее МА считать по средним значениям (цена закрытия не принципиальна), при работе на дневных свечках МА считать по ценам закрытия дней.

PERIOD - меняете вручную при каждой последующей оптимизации - 1,5,15,30,60,240...

Нажмите F1 на iMA - еще раз там все внимательно перечитайте.

Ну, и, естественно ТР и стоп-лосс оптимизируйте как обычно.

 double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
 double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
 double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
П.С. Не забудьте написать информатион по результатам тестов... :-)))
 
Роман, большое спасибо ! Сравню со своим советником. Обязательно отпишусь по результатам тестов. Ваш труд не пропадёт. Ваше прошлое предложение по мартингейлу - стоит в очереди исследования, если приближусь к Граалю )) тоже дам знать.
 
volshebnik:
Роман, большое спасибо ! Сравню со своим советником. Обязательно отпишусь по результатам тестов. Ваш труд не пропадёт. Ваше прошлое предложение по мартингейлу - стоит в очереди исследования, если приближусь к Граалю )) тоже дам знать.

Сенкс, ждемс...
 
Интересно, как будет отработана функция OrderModify(), в которой будет задан параметр "price" иной, нежели был? Например, был OrderPrice=1.3200, а в функции OrderModify поставим его равным 1.3300. Кто знает? (самому на практике да и в тестере не пришлось проверить, извините)
 
ikatsko:
Интересно, как будет отработана функция OrderModify(), в которой будет задан параметр "price" иной, нежели был? Например, был OrderPrice=1.3200, а в функции OrderModify поставим его равным 1.3300. Кто знает? (самому на практике да и в тестере не пришлось проверить, извините)

изменит цену открытия отложенного ордера, если тип ордера позволит
 
abolk:

изменит цену открытия отложенного ордера, если тип ордера позволит

Что значит "если тип ордера позволит"? Тип может быть у открытого ордера BUY или SELL.

Допустим изменит цену, а куда денет разницу? В плюс или минус баланса? Так получается? Туда же и спред добавит? Типа, закрыли старый ордер (спред) и открыли новый?

 
ikatsko:

Что значит "если тип ордера позволит"? Тип может быть у открытого ордера BUY или SELL.

Допустим изменит цену, а куда денет разницу? В плюс или минус баланса? Так получается? Туда же и спред добавит? Типа, закрыли старый ордер (спред) и открыли новый?

Функция сможет изменить только цену установки отложенного ордера. При попытке изменить цену открытия рыночного ордера, функция вернёт ошибку, что-то типа "Недопустимый параметр функции". Точнее можете посмотреть в справке по данной функции - мне лень ссылки вам давать, спать хочу... :)
 
artmedia70:
Функция сможет изменить только цену установки отложенного ордера. При попытке изменить цену открытия рыночного ордера, функция вернёт ошибку, что-то типа "Недопустимый параметр функции". Точнее можете посмотреть в справке по данной функции - мне лень ссылки вам давать, спать хочу... :)

Да, спасибо за внимание! Я же тоже поленился посмотреть и написал вопрос. Извините. НО все-же посмотрел и разобрался (без экспериментов). price - новая заявленная цена для отложенного ордера или цена открытия рыночного ордера. Спокойной ночи!

Причина обращения: