Эксперта на основе OsMA - страница 2

 
Вот показываю на пальца что я хочу получить. На данном примере: Если 2 ниже чем 3, 1 ниже чем 2, и 0 выше 1 тогда нужно покупать.
Вообщем...при том как сформированы последние тики OsMA нужно покупать, я этого хочу!(как это задать)
и соответственно когда ситуация противоположная, когда индюк выше 0.0002 и положение тиков обратное то продавать.

 
Как Вы хотите, так и делайте. Но имейте в виду, что нулевой бар переписывается, поэтому будет много ложных сигналов. Лучше сдвинуться на один бар и начинать с первого. Если делать по Вашей схеме, то получится так:
      if (
            osma0 > osma1 && 
            osma1 < osma2 && 
            osma2 < osma3 && 
            osma0 < -0.0002 //достаточно,чтобы нулевой бар был еще ниже уровня
         )//buy
//---------------------------
      if (
            osma0 < osma1 && 
            osma1 > osma2 && 
            osma2 > osma3 && 
            osma0 > 0.0002 //достаточно,чтобы нулевой бар был еще выше уровня
         )//sell
Это у Вас четырехбаровый паттерн для поиска вершин/впадин получается.
P.S. Пардон, не увидел что osma0 у Вас рассчитывается по Open, тогда переписки не будет.
 

      Насколько я понял, нужно что бы весь паттерн целиком сформировался выше/ниже уровня 0.0002/-0.0002,
поэтому все же надо проверять все показатели на эти условия:
         if(   
            osma0 < -0.0002 &&
            osma1 < -0.0002 &&
            osma2 < -0.0002 &&
            osma3 < -0.0002 &&
            osma0 > osma1 && 
            osma1 < osma2 && 
            osma2 < osma3
         )//buy
//----------------------------------------------
         if(
            osma0 > 0.0002 &&
            osma1 > 0.0002 &&
            osma2 > 0.0002 &&
            osma3 > 0.0002 &&
            osma0 < osma1 && 
            osma1 > osma2 && 
            osma2 > osma3
            )//sell
Потому что например если: osma0 < -0.0002 то она точно "глубже" фильтра,
osma0 > osma1 - значит и osma1 ниже -0.0002,
osma1 < osma2 - то вот здесь osma2, может быть даже в + зоне,
поэтому все же надо проверять все показатели.
 
спасибо, попробую, скоро отпишусь...
 

впринципе код работает...но опять ньюанс...

не могу понять каким образом вот при таком раскладе открываются ордера....в один день несколько, по моим планам так не должно быть, да и по условию тоже не должно быть такого, судя по данному рисунку и следуя логике условия еще открыться ничего не должно....а уже пооткрывалось много ордеров. Это дата - 6 мая 2010 г., потестите подскажите пожалуйста, если кто знает.. 

 

 

 

0 бар перерисовывается

также прошу заметить что сам аппель рекомендовал использовать типичную цену для анного индикатора


для тех кто в танке аппель это тот кто придумал масд в 1970 году

и в третих его надо настраивать

и рекомендуемые пропорции далеко не эффективны

 
CoreWinTT >>:

0 бар 

также прошу заметить что сам аппель рекомендовал использовать типичную цену для анного индикатора


для тех кто в танке аппель это тот кто придумал масд в 1970 году

и в третих его надо настраивать

и рекомендуемые пропорции далеко не эффективны

Василий, 0 бар не перерисовывается, так как он считается в данном эксперте по цене откр.
По поводу товарища Аппеля, тут как говориться кто как хочет так и ...делает Х)))

А теперь по делу:
потестил и вот что у меня:


 

то есть точно так же как и у Вас Роман, а теперь по пунктам

1.Что с логикой открытий?
Вот с ней то как раз и все впорядке.
У Вас 0 бар считается по цене открытия, то есть по сути в эксперте работает ДВА индикатора OsMA,
первый это OsMA(12,26,9) по ценам закрытия (для переменных osma1, osma2, osma3), и второй это
OsMA(12,26,9) по ценам открытия для osma0.
Как видно из моего скриншота, я их наложил друг на друга(толсные серые - это OsMA(12,26,9) по ценам закрытия,
тонкие черные - OsMA(12,26,9) по ценам открытия). И если увеличить масштаб то все видно:

 

3>2 (серые)
2>1 (серые)
0>1 ( 0 черная(которая у Вас по цене откр.) больше чем 1 серый(который у Вас по цене закр.)). Для точности можно пользоваться "Окном данных", а не на глазок (-0.001663 (0) > (1) -0.001666).
Как видно все работает правильно и согласно логике открытия позиций.
По условию вроде все.

2. Почему так много сделок? 
Здесь все по проще :)) короткие стопа.
Эксперт открыл первую сделку, и она закрылась по стоплоссу, но
так как у нас 0 бар не перерисовывается, и он еще не закрылся
то условие открытия все еще в силе.
Эксперт проверяет отсутствие откр. сделок и смело открывает второй ордер
по тому же самому сигналу, и так далее... до смены баров.
Если Вы поставите стопа по больше то ни каких "лишних" ордеров здесь не будет.
А по поводу нескольких сделок на одном сигнале, то это недостаток получения этого
самого сигнала в самом начале бара, если ордер успеет закрыться раньше бара, то будет
повторный вход до тех пор пока бар на котором был получен сигнал не будет закрыт.

ИТОГ: Ни в условии, ни в эксперте логических ошибок нет.
Нужно дорабатывать торговую систему.
Ну например так: не использовать для входа цену открытия текущего бара,
а использовать цену закрытия предыдущего (это более "классический способ"),

double osma0=iOsMA(NULL,0,OsMA_fast_period,OsMA_slow_period,OsMA_signal_period,PRICE_CLOSE,1);
double osma1=iOsMA(NULL,0,OsMA_fast_period,OsMA_slow_period,OsMA_signal_period,PRICE_CLOSE,2);
double osma2=iOsMA(NULL,0,OsMA_fast_period,OsMA_slow_period,OsMA_signal_period,PRICE_CLOSE,3);
double osma3=iOsMA(NULL,0,OsMA_fast_period,OsMA_slow_period,OsMA_signal_period,PRICE_CLOSE,4);
Причина обращения: