Эксперта на основе 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);