ИНФОРМАЦИОННЫЕ СИСТЕМЫ И СТРАТЕГИИ
Добро пожаловать

Добро пожаловать на форум. посвященный безубыточной торговли на рынке форекс. Зарегистрируйтесь на нашем форуме и Вы всегда будете в курсе последних технологий, применяемых на рынке форекс для безубыточной торговли.
ИНФОРМАЦИОННЫЕ СИСТЕМЫ И СТРАТЕГИИ


     Рады приветствовать Вас, Гость. Надеемся, что знакомство с форумом ФОРЕКС. Технологии безубыточной
торговли будет для Вас не только крайне полезно, но и принесет массу положительных эмоций

Добро пожаловать
Статистика
Всего зарегистрированных пользователей: 8035
Последний зарегистрированный пользователь: gerber

Наши пользователи оставили сообщений: 4638 в 2300 сюжете(ах)
ПРИНЦИПЫ ТОРГОВОЙ СИСТЕМЫ "TREND HUNTER"
ПРИНЦИПЫ ТОРГОВОЙ СИСТЕМЫ "TREND HUNTER"

Основными принципами, на которых базируется торговая форекс система
"Trend Hunter" являются следующие:

1. Вхождение в сделку приоритетно по текущему тренду

Так как мы при построении торговой форекс системы также опираемся на
теорию вероятностей, основным постулатом в этом смысле по отношению к

тренду является то, что

1. Тренд скорее продолжится, чем изменит свое направление
2. Вероятность более выгодной сделки выше при заключению ее по тренду,
чем против него

Следовательно, основные сделки на рынке форекс будут заключаться
преимущественно в направлении существующего тренда (направления движения

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

рискованности и их последствия полностью лежат на ответственности
трейдера, торгующего на валютном рынке форекс.

При расчете принимаются во внимание 2 параметра - направление
тренда
и сила тренда. Здесь применяется
классический подход

Элдера при установлении направления движения тренда и индикаторы силы
при оценки его мощности, а следовательно и потенциала для дальнейшего

движения.

Вероятность успешной сделки по тренду выражается так:

> 50% - 5
> 40% - 3
> 30% - 1

<30% - 0
<20% - сделка отменяется

Объемы подтверждают принятие решения

Несмотря на то, что это общеизвестный постулат (принцип) при торговле на
валютном рынке форекс, мы посчитали необходимым включить его также в

принципы торговой форекс системы "Trend Hunter", так как нам необходимо
набрать несколько торговых фильтров и потом методом исключения, оставить

только те, у которых вероятность срабатывания наиболее высокая. Это
позволит существенно повысить эффективность предлагаемой торговой системы.

Итак, форекс объемы. Известно общее правило, при котором увеличения
объемов указывает на сильную тенденцию на рынке форекс, а их снижение на

слабеющую. В торговой форекс системе "Trend Hunter" это тоже так, но есь
одно "но" в случае их противоречия (конвергенции или дивергенции) фильтр

будет отрицательным.

Таким образом:

Увеличение по тренду - +1
Постоянный объем - 0
Уменьшение по тренду - -1

Увеличение против тренда - -2
Уменьшение против тренда - -2

Анализ исторического периода на форекс

Естесственно, для каждой торговой форекс системы актуален вопрос "За
какой временной промежуток необходимо анализировать тенденцию для принятия

торгового решения?". Ответ, по нашему мнению таков - пропорционально
торгуемому периоду на форекс. Так как сейчас большинство трейдеров

предпочитают внутридневную торговлю, то мы ориентировались именно на
них. Средний торгуемый период в данной форекс - системе 6 часов (24/6). Это

не значит, что сделка на форекс "выживет" в течение всего этого периода,
просто он является ориентировочным.

НО, сделку необходимо закрыть по истечении этого периода, даже, если она
сохраняет потенциал для дальнейшего развития. Здесь необходимо немного

пояснить, почему так. Общеизвестно, что одними из основных условий, по
которым сделки на валютном рынке форекс могут быть закрыты это (А)

достижение планируемого уровня прибыли/убытков и (Б) превышение времени
запланированного на сделку. Как Вы уже успели догадаться, это праила

риск-менеджмента на рынке форекс. К тому же это подтверждается советами
опытных трейдеров, что не стоит жадничать и испытывать судьбу.

Запланировали - взяли, даже, если дальше сделка может развиваться в
положительную сторону. Но может и не развиваться, ведь так? Лучше синица в

руке, чем журавль в небе. Тем более на рынке форекс. Думаю, Вы
согласитесь с нами.

Использование фундаментальной конъюнктуры на рынке форекс

Это еще один большой вопрос - стоит ли использовать фундаментальные
данные при торговле на рынке форекс и ее конъюнктуру (сами данные + периоды

выхода ключевых новостей)? Большинство торговых форекс систем старого
образца полностью игнорировали данные фундаментального анализа рынка,

сосредотачивая свое внимание преимущественно на технических приемах
торговли. В прогрессивных системах торговли мы стараемся учитывать и этот

аспект в торговле. И вот почему. Известно, что перед выходом новостей,
рынок несколько замирает, а после их выхода начинает судорожно

перестраиваться. И здесь важно, чтобы торговая система на форекс умела
быстро перестроится, изменив параметры. Либо необходимо в такие моменты

отказаться от совершения сделок на рынке форекс.

Приглашаем всех к диалогу относительно создаваеемой форекс - системы
"Trend Hunter". Принимается любая критика, так как нашей задачей является

создание универсальной адаптивной форекс - системы для всех трейдеров
этого сообщества.

Вы не подключены. Войдите или зарегистрируйтесь

ПРОБЛЕМА С ЗАПАЗДЫВАНИЕМ MOVING AVERAGE

Перейти вниз  Сообщение [Страница 1 из 1]

Код:
//+------------------------------------------------------------------+
//|                                                          JMA.mq4 |
//|                                                          Spiggy |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Spiggy"
#property link      ""
//----
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int      Len=14;
extern int      phase=0;
extern int      BarCount=300;
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,ExtMapBuffer1);
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                      |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  int    counted_bars=IndicatorCounted();
//----
  // variable definitions
  bool firstTime=True;
  int AccountedBars=0;
  int jj=0;
  int ii=0;
  int shift=0;
  double series=0;
//----
  double vv=0;
  double v1=0;
  double v2=0;
  double v3=0;
  double v4=0;
  double s8=0;
  double s10=0;
  double s18=0;
  double s20=0;
  int v5=0;
  int v6=0;
  double s28=0;
  double s30=0;
  int s38=0;
  int s40=0;
  int s48=0;
  int s50=0;
  int s58=0;
  int s60=0;
  double s68=0;
  double s70=0;
  double f8=0;
  double f10=0;
  double f18=0;
  double f20=0;
  double f28=0;
  double f30=0;
  double f38=0;
  double f40=0;
  double f48=0;
  double f50=0;
  double f58=0;
  double f60=0;
  double f68=0;
  double f70=0;
  double f78=0;
  double f80=0;
  double f88=0;
  double f90=0;
  double f98=0;
  double fA0=0;
  double fA8=0;
  double fB0=0;
  double fB8=0;
  double fC0=0;
  double fC8=0;
  double fD0=0;
  double f0=0;
  double fD8=0;
  double fE0=0;
  double fE8=0;
  int fF0=0;
  double fF8=0;
  int value2=0;
  double JMA=0;
  double prevtime=0;
//----
  double list[127];
  double ring1[127];
  double ring2[10];
  double buffer[61];
//----
  ArrayInitialize(list,0);
  ArrayInitialize(ring1,0);
  ArrayInitialize(ring2,0);
  ArrayInitialize(buffer,0);
//----
  if (firstTime)
    {
      AccountedBars=Bars-BarCount;
      firstTime=False;
    }
  if ((CurTime()-prevtime)<30)
      return(-1);
//----
  prevtime=CurTime();
  //SetLoopCount(0);
    {
      s28=63;
      s30=64;
      for( ii=1;ii<=s28;ii++)
        {
        list[ii]=-1000000;
        }
      for( ii=s30;ii<=127 ;ii++ )
        {
        list[ii]=1000000;
        }
      f0=1;
    }
//----
  for( shift=BarCount;shift>=0;shift-- )
    {
      series=Close[shift];
      if (fF0 < 61)
        {
        fF0= fF0 + 1;
        buffer[fF0]=series;
        } //{ main cycle }
      if (fF0 > 30)
        {
        if (Len < 1.0000000002)
          {
            f80=0.0000000001; //{1.0e-10}
          }
        else
          {
            f80=(Len - 1)/2.0;
          }
        if (phase < -100)
          {
            f10=0.5;
          }
        else
          {
            if (phase > 100)
              {
              f10=2.5;
              }
            else
              {
              f10=phase/100 + 1.5;
              }
          }
        v1=MathLog(MathSqrt(f80));
        v2=v1;
        if (v1/MathLog(2.0) + 2.0 < 0.0)
          {
            v3=0;
          }
        else
          {
            v3=v2/MathLog(2.0) + 2.0;
          }
        f98=v3;
//----
        if (0.5<=f98 - 2.0)
          {
            f88=f98 - 2.0;
          }
        else
          {
            f88=0.5;
          }
        f78=MathSqrt(f80) * f98;
        f90=f78/(f78 + 1.0);
        f80=f80 * 0.9;
        f50=f80/(f80 + 2.0);
//----
        if (f0!=0)
          {
            f0=0;
            v5=0;
            for( ii=1;ii <=29;ii++)
              {
              if (buffer[ii+1]!=buffer[ii])
                {
                  v5=1.0;
                }
              }
            fD8=v5*30.0;
            if (fD8==0)
              {
              f38=series;
              }
            else
              {
              f38=buffer[1];
              }
            f18=f38;
            if (fD8 > 29)
              fD8=29;
          }
        else
            fD8=0;
//----
        for( ii=fD8;ii>=0;ii-- )
          { //{ another bigcycle...}
            value2=31-ii;
            if (ii==0)
              {
              f8=series;
              }
            else
              {
              f8=buffer[value2];
              }
            f28=f8 - f18;
            f48=f8 - f38;
            if (MathAbs(f28) > MathAbs(f48))
              {
              v2=MathAbs(f28);
              }
            else
              {
              v2=MathAbs(f48);
              }
            fA0=v2;
            vv=fA0 + 0.0000000001; //{1.0e-10;}
//----
            if (s48<=1)
              {
              s48=127;
              }
            else
              {
              s48=s48 - 1;
              }
            if (s50<=1)
              {
              s50=10;
              }
            else
              {
              s50=s50 - 1;
              }
            if (s70 < 128)
              s70=s70 + 1;
            s8=s8 + vv - ring2[s50];
            ring2[s50]=vv;
            if (s70 > 10)
              {
              s20=s8/10;
              }
            else
              s20=s8/s70;
//----
            if (s70 > 127)
              {
              s10=ring1[s48];
              ring1[s48]=s20;
              s68=64;
              s58=s68;
              while(s68 > 1)
                {
                  if (list[s58] < s10)
                    {
                    s68=s68 *0.5;
                    s58=s58 + s68;
                    }
                  else
                    if (list[s58]<=s10)
                      {
                        s68=1;
                      }
                    else
                      {
                        s68=s68 *0.5;
                        s58=s58 - s68;
                      }
                }
              }
            else
              {
              ring1[s48]=s20;
              if (s28 + s30 > 127)
                {
                  s30=s30 - 1;
                  s58=s30;
                }
              else
                {
                  s28=s28 + 1;
                  s58=s28;
                }
              if (s28 > 96)
                {
                  s38=96;
                }
              else
                  s38=s28;
              if (s30 < 32)
                {
                  s40=32;
                }
              else
                  s40=s30;
              }
//----
            s68=64;
            s60=s68;
            while(s68 > 1)
              {
              if (list[s60]>=s20)
                {
                  if (list[s60 - 1]<=s20)
                    {
                    s68=1;
                    }
                  else
                    {
                    s68=s68 *0.5;
                    s60=s60 - s68;
                    }
                }
              else
                {
                  s68=s68 *0.5;
                  s60=s60 + s68;
                }
              if ((s60==127) && (s20 > list[127]))
                  s60=128;
              }

            if (s70 > 127)
              {
              if (s58>=s60)
                {
                  if ((s38 + 1 > s60) && (s40 - 1 < s60))
                    {
                    s18=s18 + s20;
                    }
                  else
                    if ((s40 > s60) && (s40 - 1 < s58))
                        s18=s18 + list[s40 - 1];
                }
              else
                  if (s40>=s60)
                    {
                    if ((s38 + 1 < s60) && (s38 + 1 > s58))
                        s18=s18 + list[s38 + 1];
                    }
                  else
                    if (s38 + 2 > s60)
                      {
                        s18=s18 + s20;
                      }
                    else
                        if ((s38 + 1 < s60) && (s38 + 1 > s58))
                          s18=s18 + list[s38 + 1];

              if (s58 > s60)
                {
                  if ((s40 - 1 < s58) && (s38 + 1 > s58))
                    {
                    s18=s18 - list[s58];
                    }
                  else
                    if ((s38 < s58) && (s38 + 1 > s60))
                        s18=s18 - list[s38];
                }
              else
                {
                  if ((s38 + 1 > s58) && (s40 - 1 < s58))
                    {
                    s18=s18 - list[s58];
                    }
                  else
                    if ((s40 > s58) && (s40 < s60))
                        s18=s18 - list[s40];
                }
              }
            if (s58<=s60)
              {
              if (s58>=s60)
                {
                  list[s60]=s20;
                }
              else
                {
                  for( jj=s58 + 1;jj<=s60 - 1;jj++)
                    {
                    list[jj - 1]=list[jj];
                    }
                  list[s60 - 1]=s20;
                }
              }
            else
              {
              for( jj=s58 - 1;jj>=s60;jj-- )
                {
                  list[jj + 1]=list[jj];
                }
              list[s60]=s20;
              }
            if (s70<=127)
              {
              s18=0;
              for(jj=s40;jj<=s38;jj++)
                {
                  s18=s18 + list[jj];
                }
              }
            f60=s18/(s38 - s40 + 1);
            if (fF8 + 1 > 31)
              {
              fF8=31;
              }
            else
              fF8=fF8 + 1;
//----
            if (fF8<=30)
              {
              if (f28 > 0)
                {
                  f18=f8;
                }
              else
                  f18=f8 - f28 * f90;
              if (f48 < 0)
                {
                  f38=f8;
                }
              else
                  f38=f8 - f48 * f90;
              fB8=series;
//{EasyLanguage does not have "continue" statement}
              if (fF8!=30)
                {
                  continue;
                }
              if (fF8==30)
                {
                  fC0=series;
                  if (MathCeil(f78)>=1)
                    {
                    v4=MathCeil(f78);
                    }
                  else
                    v4=1;
                  fE8=MathCeil(v4);
                  if (MathFloor(f78)>=1)
                    {
                    v2=MathFloor(f78);
                    }
                  else
                    v2=1;
                  fE0=MathCeil(v2);
                  if (fE8==fE0)
                    {
                    f68=1;
                    }
                  else
                    {
                    v4=fE8 - fE0;
                    f68=(f78 - fE0)/v4;
                    }
                  if (fE0<=29)
                    {
                    v5=fE0;
                    }
                  else
                    v5=29;
                  if (fE8<=29)
                    {
                    v6=fE8;
                    }
                  else
                    v6=29;
                  fA8=(series - buffer[fF0 - v5]) * (1 - f68)/fE0 + (series - buffer[fF0 - v6]) * f68/fE8;
                }
              }
            else
              {
              if (f98>=MathPow(fA0/f60, f88))
                {
                  v1=MathPow(fA0/f60, f88);
                }
              else
                  v1=f98;
              if (v1 < 1)
                {
                  v2=1;
                }
              else
                {
                  if (f98>=MathPow(fA0/f60, f88))
                    {
                    v3=MathPow(fA0/f60, f88);
                    }
                  else
                    v3=f98;
                  v2=v3;
                }
              f58=v2;
              f70=MathPow(f90, MathSqrt(f58));
              if (f28 > 0)
                {
                  f18=f8;
                }
              else
                {
                  f18=f8 - f28 * f70;
                }
              if (f48 < 0)
                {
                  f38=f8;
                }
              else
                {
                  f38=f8 - f48 * f70;
                }
              }
          }
        if (fF8 > 30)
          {
            f30=MathPow(f50, f58);
            fC0=(1 - f30) * series + f30 * fC0;
            fC8=(series - fC0) * (1 - f50) + f50 * fC8;
            fD0=f10 * fC8 + fC0;
            f20=-f30 * 2;
            f40=f30 * f30;
            fB0=f20 + f40 + 1;
            fA8=(fD0 - fB8) * fB0 + f40 * fA8;
            fB8=fB8 + fA8;
          }
        JMA= fB8;
        }
      if (fF0<=30)
        {
        JMA=0;
        }
//Print ("JMA is " + JMA + " shift is " + shift);
      ExtMapBuffer1[shift]=JMA;
//----
      if (shift>0)
        {
        AccountedBars=AccountedBars+1;
        }
    }
//----
  return(0);
  }
//+------------------------------------------------------------------+

Cтратегия форекс 2 JMA System

Стратегии форекс на основе Скользящих средних

Для торговли по Cтратегии форекс 2 JMA System лучше всего подходит валютная пара EURUSD, 15 минутный интервал (M15), при этом перед началом торговли рекомендую определить естественные уровни сопротивления и поддержки на периоде H1.

* Для торговли рекомендую выбрать ДЦ форекс с Metatrader 4

На 15 минутный график EURUSD устанавливаем:

1) Jurik Moving Average c периодом 40 - JMA (40)

2) Jurik Moving Average c периодом 80 - JMA (80)

Открытие торговой позиции по стратегии форекс 2 JMA System:

1) Открываем сделки по направлению скользящих средних JMA (На buy, если быстрая JMA (40), выше медленной JMA (80), на sell - наоборот).

2) Для открытия сделки по тренду, необходимо чтобы сам тренд был “свежим”, т.е. был основным трендом данной сессии.

3) Если пересечение скользящих JMA случилось в утреннее время (От 03:00 до 12:00 по МСК), то открыть сделку можно лишь после того как произойдет откат к медленной скользящей, т.е. JMA (40) (должно быть закрытие свечи не дальше чем на 15 пипсов от медленной JMA (40)), либо если цена располагается уже поблизости, либо даже намного ниже самой скользящей средней JMA (40).

Так же для утренних пересечений есть еще одно правило: если на рынке нет преобладающего тренда и наклон JMA слабый, то после пересечения скользящих средних, открыть сделку можно лишь на закрытии седьмого бара, не считая тот бар, на котором случилось пересечение JMA; если был резкий рывок на графике и наклон JMA ярко выражен, то открывать сделку можно на закрытии 5-го бара (либо сразу, если цена бара располагается очень близко от медленной скользящей JMA (40) - 10-ти либо менее пипсов).

4) При пересечении скользящих средних JMA после 12:00 по МСК, открывать сделку необходимо сразу по закрытию бара, на котором случилось пересечение 2-х JMA, однако цена при этом не должна находиться дальше 25 пипсов от медленной JMA (40). Если цена находиться дальше от JMA (40) чем на 25 пипсов, то нужно ждать отката и покупать сразу при выполнении необходимых условий, ждать закрытия откатного бара совершенно необязательно, можно заключить сделку сразу.

5) Во всех случаях открытия торговой позиции, если быстрая JMA (с параметром 40) после пересечения направлена против тренда (против направления указанного пересечением двух скользящих средних) – то такой сигнал нужно проигнорировать.

Стратегия форекс 2 JMA System

Установка Stop loss и Take Profit по стратегии форекс 2 JMA System:
Стоп-лосс устанавливается жестко в 30 пипсов, Тейк-профит при этом минимум в 60 пунктов либо более.

Установка разворотного ордера.
После открытия торговой позиции по сигналу, сразу же нужно выставить разворотный отложенный ордер (ни в коем случае не нужно ставить разворотный ордер, если ордер по сигналу, еще не сработал). Он нам необходим, для того, чтобы оправдать потери, если они произойдут, от первой торговой позиции. Цена открытия отложенного ордера будет такой же, как цена стоп-лосса первой торговой позиции, а стоп-лосс отложенного ордера при этом ставим на открытие первой торговой позиции, он также будет равняться 30 пипсов.

Тэйк-профит разворотного ордера выставляем немного больше, чем стоп-лосс первой торговой позиции - 40 пипсов. Разворотный ордер снимать лишь тогда, как стоп-лосс первой торговой позиции находиться в прибыли и желательно переставлен в ноль.

Управление трейлинг-стопом.
Если плавающая прибыль по открытой сделке составляет 30-49 пипсов, переносим стоп-лосс в +3-5 пунктов прибыли. Если плавающая прибыль составляет более 50 пипсов, переносим стоп-лосс в +10 пипсов прибыли, если более 60 пипсов в +20 и т.д (т.е. шаг 10). соответственно. При переносе стоп-лосса в зону прибыли, разворотный ордер необходимо удалить.

Если сделка не закрыта, то по истечению 2-го торгового дня, либо по окончанию торговой недели (на выходные) - нужно закрыть торговую позицию приблизительно в до закрытия рынка на выходные, чтоб не попасть в гэп на открытии недели.

Торговые сигналы рекомендую лучше всего отслеживать с 8:30 до 17:00 по Московскому времени.



Последний раз редактировалось: Foxter (Пн Ноя 08, 2010 2:43 pm), всего редактировалось 1 раз(а) (Обоснование : ПРОБЛЕМА С ЗАПАЗДЫВАНИЕМ MOVING AVERAGE)

Посмотреть профиль http://forex.forum-canada.com/forum-f4/tema-t15.htm

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

 
  •  

Бесплатные форумы | © PunBB | Бесплатный форум поддержки | Контакты | Сообщить о нарушении | Последние обсуждения