Как правильно описывать пересечение?

 
Здравствуйте!!!У меня такая вот проблема: описываю пересечение как Х>Y заходим в лонг или close>X заходим в лонг. При срабатывании стоп-лосс позиция снова открывается т. к. все еще Х>Y. Тоесть стоп-лосс не работает и мы попадаем еще и на спред :-((.

Как сделать так чтобы при срабатывании лося система ждала следующего пересечения и не входила сразу в позу т.к. условие еще справедливо ???

Спасибо Всем заранее за помощь.

С Ув. Sladoeg :-)
 
Так вот так это делается

Если X<Y на прошлом баре а X>Y на текущем тогда бай

для села наоборот



мувинги наверное будут
    покажете тест
 
ram25 писал (а):
Так вот так это делается

Если X<Y на прошлом баре а X>Y на текущем тогда бай

для села наоборот



мувинги наверное будут
покажете тест
Да, действительно :-))), Спасибо!!!
Мувингов не будет, будет если цена close>X тогда бай
Кстати что там на счет Вашего сервера Линукс???7Возможно с Вами сотрудничать???
 

РАМ25 Это все прикольно, но оно что-то не так работает, прописываю все как ты говорил, ставлю стоп-лосс 1000 пипсов, а тестер показывает очень различные результаты между системой без стопа и со стопом.

 

Тоесть если мы в позе, разворачиваемся по реверсивному сигналу - эта сисьема без лося.
Если мы в позе, разворачиваемся по реверсивному сигналу или выход по стоп-лосс и ждем следующего сигнала - эта система с лосем.


Но при тесте второй системы с лосем в 1000 пипов результаты теста различны с системой без лося :-о)??????

Что за лажа ??????????????ХЕЛП !!!

Или мне надо 100 грамм чтобы разобраться :-))

 

На самом деле это работает на одном временном интервале, а как быть, если используешь 2 временных интревала ???
Вот тест без лося, с лосем будет уменьшение просадки где-то на 50%. Но никак не могу лось прописать.
'Прибыльный эксперт'

 
Пересечение 2-х МА тут уже много раз обсуждалось. И советников наверняка немало...
У меня, например, вот так:
/*
period - Период усреднения МА. Должен быть больше 0
method - Метод усреднения МА. Может быть от 0 до 3:
            MODE_SMA  0 Простое скользящее среднее 
            MODE_EMA  1 Экспоненциальное скользящее среднее 
            MODE_SMMA 2 Сглаженное скользящее среднее 
            MODE_LWMA 3 Линейно-взвешенное скользящее среднее 
price  - Используемая цена. Может быть от 0 до 6:
            PRICE_CLOSE        0 Цена закрытия 
            PRICE_OPEN        1 Цена открытия 
            PRICE_HIGH        2 Максимальная цена 
            PRICE_LOW        3 Минимальная цена 
            PRICE_MEDIAN    4 Средняя цена, (high+low)/2 
            PRICE_TYPICAL    5 Типичная цена, (high+low+close)/3 
            PRICE_WEIGHTED    6 Взвешенная цена закрытия, (high+low+close+close)/4 
*/
extern int            fastMA_period                    = 13;
extern int            fastMA_method                    = 1;
extern int            fastMA_price                    = 0;
 
extern int            slowMA_period                    = 36;
extern int            slowMA_method                    = 1;
extern int            slowMA_price                    = 0;
 
extern int            CrossPoints1                    = 1;
extern int            CrossPoints2                    = 0;
 
extern int            CrossBar                    = 1;
 
int counted_bar = 0;
 
int MAcross()
{
    if ( CrossBar > 0 && Time[0] <= counted_bar ) { return(0); }
    counted_bar = Time[0];
 
    double fastMA_1 = iMA( Symbol(), Period(), fastMA_period, 0, fastMA_method, fastMA_price, CrossBar );
    double slowMA_1 = iMA( Symbol(), Period(), slowMA_period, 0, slowMA_method, slowMA_price, CrossBar );
    double fastMA_2 = iMA( Symbol(), Period(), fastMA_period, 0, fastMA_method, fastMA_price, CrossBar + 1 );
    double slowMA_2 = iMA( Symbol(), Period(), slowMA_period, 0, slowMA_method, slowMA_price, CrossBar + 1 );
 
    if ( NormalizeDouble( fastMA_1 - slowMA_1 - CrossPoints1*_Point, _Digits ) >= 0.0 && 
        NormalizeDouble( slowMA_2 - fastMA_2 - CrossPoints2*_Point, _Digits ) >= 0.0 )
    {
        return(1);
    }
    else
    {
        if ( NormalizeDouble( slowMA_1 - fastMA_1 - CrossPoints1*_Point, _Digits ) >= 0.0 && 
            NormalizeDouble( fastMA_2 - slowMA_2 - CrossPoints2*_Point, _Digits ) >= 0.0 )
        {
            return(-1);
        }
    }
return(0);
}
 
Sladoeg:
ram25 писал (а):
Так вот так это делается

Если X<Y на прошлом баре а X>Y на текущем тогда бай

для села наоборот



мувинги наверное будут
покажете тест
Да, действительно :-))), Спасибо!!!
Мувингов не будет, будет если цена close>X тогда бай
Кстати что там на счет Вашего сервера Линукс???7Возможно с Вами сотрудничать???

С сервером все нормально.
Только надо софт ставить туда.
Есть какие-то предложения по сотрудничеству
пишите ram25@ukr.net   
 
Sladoeg:

РАМ25 Это все прикольно, но оно что-то не так работает, прописываю все как ты говорил, ставлю стоп-лосс 1000 пипсов, а тестер показывает очень различные результаты между системой без стопа и со стопом.



Кидай на визуальный тестер и гляди
Или можеш выложить код в ex4 если не хочеш исходник показывать
Причина обращения: