На главной странице форума трейдеров нет ни одной темы о трейдинге. От слова совсем. - страница 4

 
/*    Soft Fractals Patern 123 Indicator - индикатор распознает 
   патерны "1-2-3", как комбинацию нестандартных фракталов трех 
   типов. На баре точки "1" патерна в 7-м и 8-м индикаторных 
   буферах фиксируется время точек "2" и "3" соответственно. */
#property copyright "Copyright 2012, Тарабанов А.В."
#property link      "alextar@bk.ru"
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Green
#property indicator_width1 3
#property indicator_color2 Red
#property indicator_width2 3
#property indicator_color3 Green
#property indicator_width3 1
#property indicator_color4 Red
#property indicator_width4 1
#property indicator_color5 Green
#property indicator_width5 1
#property indicator_color6 Red
#property indicator_width6 1
#define Version    "iSF123"                        // Константы
#define Zero       0.00000001
#define Infinity   100000000.0
// Глобальные переменные и массивы
double      Bottom[], Top[],                       // Индикаторные буферы
            Down2[] , Up2[],
            Down3[] , Up3[],
            Time2[] , Time3[];                     // Время точек патерна
extern int  БаровЛевееВершины   =119,              // Внешние переменные
            БаровПравееВершины  =1,
            БаровЛевееОтката    =6,
            БаровПравееОтката   =1,
            БаровЛевееРетеста   =1,
            БаровПравееРетеста  =1,
            СимволНижнейВершины =161,
            СимволВерхнейВершины=161,
            СимволОткатаВниз    =161,
            СимволОткатаВверх   =161,
            СимволРетестаВниз   =159,
            СимволРетестаВверх  =159;
extern bool ОтображатьВершины   =true,
            ОтображатьОткаты    =true,
            ОтображатьРетесты   =true;
//+------------------------------------------------------------------+
int init(){
   int DrawFractals=DRAW_NONE, DrawRecoils=DRAW_NONE, DrawReTests=DRAW_NONE;
   if( ОтображатьВершины ) DrawFractals=DRAW_ARROW;
   if( ОтображатьОткаты  ) DrawRecoils =DRAW_ARROW;
   if( ОтображатьРетесты ) DrawReTests =DRAW_ARROW;
   SetIndexLabel(0,"Bottom");                      // Атрибуты буферов
   SetIndexBuffer(0,Bottom);
   SetIndexStyle(0,DrawFractals);
   SetIndexArrow(0,СимволНижнейВершины);
   SetIndexEmptyValue(0,0);
   SetIndexLabel(1,"Top");
   SetIndexBuffer(1,Top);
   SetIndexStyle(1,DrawFractals);
   SetIndexArrow(1,СимволВерхнейВершины);
   SetIndexEmptyValue(1,0);
   SetIndexLabel(2,"Down2");
   SetIndexBuffer(2,Down2);
   SetIndexStyle(2,DrawRecoils);
   SetIndexArrow(2,СимволОткатаВниз);
   SetIndexEmptyValue(2,0);
   SetIndexLabel(3,"Up2");
   SetIndexBuffer(3,Up2);
   SetIndexStyle(3,DrawRecoils);
   SetIndexArrow(3,СимволОткатаВверх);
   SetIndexEmptyValue(3,0);
   SetIndexLabel(4,"Down3");
   SetIndexBuffer(4,Down3);
   SetIndexStyle(4,DrawReTests);
   SetIndexArrow(4,СимволРетестаВниз);
   SetIndexEmptyValue(4,0);
   SetIndexLabel(5,"Up3");
   SetIndexBuffer(5,Up3);
   SetIndexStyle(5,DrawReTests);
   SetIndexArrow(5,СимволРетестаВверх);
   SetIndexEmptyValue(5,0);
   SetIndexBuffer(6,Time2);
   SetIndexStyle(6,DRAW_NONE);
   SetIndexEmptyValue(6,0);
   SetIndexBuffer(7,Time3);
   SetIndexStyle(7,DRAW_NONE);
   SetIndexEmptyValue(7,0);
   IndicatorShortName(Version);
   if( БаровЛевееВершины <1 ) БаровЛевееВершины =1;// Контроль значений
   if( БаровПравееВершины<1 ) БаровПравееВершины=1;
   if( БаровЛевееОтката  <1 ) БаровЛевееОтката  =1;
   if( БаровПравееОтката <1 ) БаровПравееОтката =1;
   if( БаровЛевееРетеста <1 ) БаровЛевееРетеста =1;
   if( БаровПравееРетеста<1 ) БаровПравееРетеста=1;
   return(0);
}
//+------------------------------------------------------------------+
int deinit(){
   return(0);
}
//+------------------------------------------------------------------+
int start(){
   int i, History=Bars-1,
       BarsLost=History-IndicatorCounted();
   if( BarsLost<History ){
      if( BarsLost<1 ) return(0);                  // Не повторять на том-же баре
      i=БаровПравееВершины+BarsLost;               // Число баров пересчета
   }
   else i=History-БаровЛевееВершины;               // Просмотр на всей истории
   int j, imax, imin, Error;
   double High1, Low1, High2, Low2, High3, Low3;
   while( i>1 ){                                   // Перебор слева направо
      fSoftFractals(i,Bottom,Top,БаровЛевееВершины,БаровПравееВершины);
      fSoftFractals(i,Down2 ,Up2,БаровЛевееОтката ,БаровПравееОтката );
      fSoftFractals(i,Down3 ,Up3,БаровЛевееРетеста,БаровПравееРетеста);
      if( Down3[i]>Zero ){                         // Поиск точки 3
         Low3=Down3[i];
         if( Up3[i]>Zero ){                        // Up и Down
            High3=Up3[i];
         }
         else{                                     // Down
            High3=0;
      }  }
      else{
         if( Up3[i]>Zero ){                        // Up
            High3=Up3[i];
            Low3=0;
         }
         else{                                     // Нет точки 3
            i--;
            continue;
      }  }
      High1=0;
      Low1=0;
      imax=0;
      High2=0;
      imin=0;
      Low2=Infinity;
      j=i+1;
      while( j<=History-БаровЛевееВершины ){       // Поиск точек 1 и 2
         if( Bottom[j]>Zero ){
            if( Top[j]<Zero ){                     // Low1
               Low1=Bottom[j];
               if( Low1-Low3>-Zero
                || Low3-High2>Zero
                || Low3<Zero
                || High2<Zero ) break;             // Нет патерна
               if( Time2[j]>0 && Time3[j]>0 ){
                  if( Low[iBarShift(NULL,0,Time3[j])]-Low3>Zero
                   && High[iBarShift(NULL,0,Time2[j])]-High2>-Zero ) Time3[j]=Time[i];
                  break;                           // Модификация патерна
               }
               Time2[j]=Time[imax];
               Time3[j]=Time[i];
               break;                              // Новый патерн
            }
            else break;                            // Нет патерна
         }
         else{
            if( Top[j]>Zero ){                     // High1
               High1=Top[j];
               if( High3-High1>-Zero
                || Low2-High3>Zero
                || High3<Zero
                || Low2<Zero ) break;              // Нет патерна
               if( Time2[j]>0 && Time3[j]>0 ){
                  if( High3-High[iBarShift(NULL,0,Time3[j])]>Zero
                   && Low2-Low[iBarShift(NULL,0,Time2[j])]>-Zero ) Time3[j]=Time[i];
                  break;                           // Модификация патерна
               }
               Time2[j]=Time[imin];
               Time3[j]=Time[i];
               break;                              // Новый патерн
         }  }
         if( Up2[j]-High2>Zero ){
            High2=Up2[j];
            imax=j;
         }
         if( Down2[j]>Zero && Low2-Down2[j]>Zero ){
            Low2=Down2[j];
            imin=j;
         }
         j++;
      }
      i--;
   }
   return(0);
}
//+------------------------------------------------------------------+
void fSoftFractals(int i                           // Текущий бар
                  ,double& B[],double& T[]         // Буферные массивы фракталов
                  ,int Left=1,int Right=1){        // Размерность фракталов
   if( i<=Right ) return;
   double C[];
   int dim=ArrayResize(C,Left+1+Right), j;
   B[i]=0;                                         // Поиск нижнего фрактала
   while( j < dim ){
      C[j]=Low[j+i-Right];
      j++;
   }
   if( C[Right+1]-C[Right]>-Zero
    && C[Right-1]-C[Right]>-Zero ) {
      B[i]=C[Right];                               // Локальный минимум
      j=1;
      while ( j < dim ) {
         if( ( j<Right && B[i]-C[j-1]>Zero )
          || ( j>Right && B[i]-C[j]  >Zero ) ) {
            B[i]=0;                                // Нет фрактала
            break;
         }
         j++;
   }  }
   j=0;                                            // Поиск верхнего фрактала
   T[i]=0;
   while( j<dim ){
      C[j]=High[j+i-Right];
      j++;
   }
   if( C[Right]-C[Right+1]>-Zero
    && C[Right]-C[Right-1]>-Zero ) {
      T[i]=C[Right];                               // Локальный максимум
      j=1;
      while ( j < dim ) {
         if( ( j<Right && C[j-1]-T[i]>Zero )
          || ( j>Right && C[j]  -T[i]>Zero ) ) {
            T[i]=0;                                // Нет фрактала
            break;
         }
         j++;
   }  }
   return;
}

Пока индикатор. 

 
Алексей Тарабанов:

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

а ты НА ФОРЕКСЕ можешь зарабатывать?

 
danminin:

а ты НА ФОРЕКСЕ можешь зарабатывать?

Я даже не знаю, могу ли на рояле играть. Просто, ни разу не пробовал. 

 
Алексей Тарабанов:

Я даже не знаю, могу ли на рояле играть. Просто, ни разу не пробовал. 

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

 
danminin:

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

Слово "дебил" знакомо? 

 
Группа Ноль - Человек и Кошка HD ( 2 й клип )
Группа Ноль - Человек и Кошка HD ( 2 й клип )
  • 2016.11.04
  • www.youtube.com
Видео снято в 1991 году в новой студии Андрея Тропилло на Большом проспекте Петроградской стороны. Это было следующее место после Дома Пионеров на Охте. В эт...
 
danminin:

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

Бедненькие

 
danminin:

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

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

 
Fast235:

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

А мне наоборот, не нравится, когда меня за лоха держат...  Ох, на скальпинге зарабатываем по 20% в день, при полной гарантии... На депозите в миллион рублей... Да еще и начиинающая, которая не более пяти лет "в теме"...

Ну да, ну да...

Балаболы...

 
Georgiy Merts:

А мне наоборот, не нравится, когда меня за лоха держат...  Ох, на скальпинге зарабатываем по 20% в день, при полной гарантии... На депозите в миллион рублей... Да еще и начиинающая, которая не более пяти лет "в теме"...

Ну да, ну да...

Балаболы...

да это больше похоже на белую горячку, врятли кто-то зарабатывая достаточно большие деньги, в здравом уме станет орать об этом на каждом углу, это удел аферистов

в прочем почему бы и не зарабатывать, 1млн. руб в месяц не такие большие деньги, но все ли 12 мес в году

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