• Реклама: 💰 Пополни свой портфель с минимальной комиссией на Transfer24.pro
  • Добро пожаловать на инвестиционный форум!

    Во всем многообразии инвестиций трудно разобраться. MMGP станет вашим надежным помощником и путеводителем в мире инвестиций. Только самые последние тренды, передовые технологии и новые возможности. 400 тысяч пользователей уже выбрали нас. Самые актуальные новости, проверенные стратегии и способы заработка. Сюда люди приходят поделиться своим опытом, найти и обсудить новые перспективы. 16 миллионов сообщений, оставленных нашими пользователями, содержат их бесценный опыт и знания. Присоединяйтесь и вы!

    Впрочем, для начала надо зарегистрироваться!
  • 🐑 Моисей водил бесплатно. А мы платим, хотя тоже планируем работать 40 лет! Принимай участие в партнеской программе MMGP
  • 📝 Знаешь буквы и умеешь их компоновать? Платим. Дорого. Бессрочная акция от MMGP: "ОПЛАТА ЗА СООБЩЕНИЯ"

Ищу советника или индикатор по импульсу 2х свечей

pixes

Новичок
Регистрация
19.11.2016
Сообщения
1
Реакции
0
Поинты
0.000
Сумма размера тел 2х свечей от 10п.
Тень последней свечи не более 35% от размера ее тела
Одна из этих свечей не менее 40% от общего размера (сумм тел) этих 2х свечей
Тело одной из этих 2 свечей в пунктах больше, чем тело одной из последних 21 свечи
Закрытие последней свечи больше тела предыдущей свечи.

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

З.Ы. Хотел прикрепить картинку, для более подробного понимания, но тут надо 5 сообщений написать, если что, могу выслать в ЛС
 
Регистрация
10.04.2011
Сообщения
2,217
Реакции
1,182
Поинты
0.000
Сумма размера тел 2х свечей от 10п.
Соседних свечей имеется ввиду? Т. е. Tело[i+1]+Tело >= 10 пунктов ?
Тень последней свечи не более 35% от размера ее тела
Т.е. Тень <= 0.35*Тело ?
Одна из этих свечей не менее 40% от общего размера (сумм тел) этих 2х свечей
"Одна из этих свечей" имеется ввиду размер свечи (high-low) или размер тела свечи (close-open) ? Если расчет по телу, то так?
Тело>=0.4*(Тело[i+1]+Тело) || Тело[i+1]>=0.4*(Тело[i+1]+Тело)
Тело одной из этих 2 свечей в пунктах больше, чем тело одной из последних 21 свечи
Т.е. Тело>ВыборкаМакс(Тело[i+22],...., Тело[i+2]) || Тело[i+1]>ВыборкаМакс(Тело[i+22],...., Тело[i+2])
Закрытие последней свечи больше тела предыдущей свечи.
Это как размер тела с ценой закрытия сравнивать? :) Надо бы как-то корректнее выражаться, для правильного понимания, так сказать. Наверное, имелось ввиду, что цена закрытия последней свечи расположена выше тела предыдущей свечи (тело предыдущей свечи не поглощает тело последней).
Наверное так: Close>Close[i+1] && Close>Open[i+1]

чтоб это помечалось в реал-тайме до закрытия текущей свечи(последней свечи)
Т.е. в данном случае индекс i шагает от 0 (0 - индекс текущей свечи на ценовом графике).
но тут надо 5 сообщений написать
проблема написать 5 сообщений, если нужен индикатор или помощь по его написанию?
Ищу советника или индикатор по импульсу 2х свечей
Слишком многое неясно с позиций написания эксперта (советника). Например, условия открытия позиций, условия выхода из позиций, управление деньгами счета, управление рисками и т.п.
 
Последнее редактирование:
Регистрация
10.04.2011
Сообщения
2,217
Реакции
1,182
Поинты
0.000
Если условия такие, как я описал, то вот этот, написанный мной "на коленках", код реализует то самое:
PHP:
//+------------------------------------------------------------------+
//|                                                  two_candles.mq4 |
//|                                                     Vlad Sergeev |
//|                                         http://moneyinnetwork.ru |
//+------------------------------------------------------------------+
#property copyright "Vlad Sergeev"
#property link      "http://moneyinnetwork.ru"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int      TextSize = 8; //размер шрифта 
input color    TextColor = clrRed; //цвет текста 
input int      TextAngle = 0; //угол поворота текста 
input int      MaxBar = 200;  //количество последних баров, для которых рассчитывается индикатор 
input int      Body_Size = 100; //минимальная сумма тел двух соседних свечей (пунктов)
input double   Percent1 = 35; //тень последней свечи в процентах от размера тела
input double   Percent2 = 40;  //
input int      Depth = 21; //глубина выборки 

//структура будет описывать свечу
struct candle {
     //параметры свечи
     double open, close, high, low, body; //цены
     bool bullish, bear, doji, big; //вид свечи: бычья, медвежья, доджи (без тела), большая белая/черная
     datetime t; //время свечи
     double up_shadow, down_shadow, shadow; //верхняя и нижняя тени
     //функция инициализирует параметры свечи, принимая в качестве аргумента индекс значения из таймсерии 
     void load (int i) { 
        bullish=false; bear=false; doji = false; big = false;
        open  = NormalizeDouble(iOpen(Symbol(),Period(),i), Digits);  //цена открытия
        close = NormalizeDouble(iClose(Symbol(),Period(),i), Digits); //цена закрытия
        high  = NormalizeDouble(iHigh(Symbol(),Period(),i), Digits);  //максимальная цена
        low   = NormalizeDouble(iLow(Symbol(),Period(),i), Digits);   //минимальная цена 
        t     = iTime(Symbol(),Period(),i); //время закрытия
        body  = MathAbs(close-open); //размер тела
        //проверка на "бычье тело"
        if ( close > open )  {
            bullish = true;         //бычье тело
            up_shadow = high-close; //верхняя тень
            down_shadow = open-low; //нижняя тень
        }
        //проверка на "медвежье тело"
        if ( close < open )  {
            bear = true;             //медвежье тело
            up_shadow = high-open;   //верхняя тень
            down_shadow = close-low; //нижняя тень
        }
        //проверка на доджи - свеча без тела
        if ( close == open )  {
            doji = true;            //счеча без тела - доджи
            up_shadow = high-close; //верхняя тень
            down_shadow = open-low; //нижняя тень
        }
        //проверка на большую свечу (размер тела минимум в 2 раза больше размера теней)
        if ( body>=2*(up_shadow+down_shadow) ) big = true; 
        shadow = up_shadow+down_shadow;
     }   
};

int OnInit() 
{ 
   return(INIT_SUCCEEDED); 
} 

void OnDeinit(const int reason) 
{ 
   for ( int i = 0; i < MaxBar; i++ )   { 
      if ( ObjectFind ("candle1"+ IntegerToString(i)) >=0 )   { 
             ObjectDelete("candle1"+ IntegerToString(i)); 
             ObjectDelete("candle2"+ IntegerToString(i)); 
      }
   }
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   candle c1, c2;
   for ( int i = 0; i < MaxBar; i++ )   
   {
       if ( ObjectFind ("candle1"+ IntegerToString(i)) >=0 )   
       { 
            ObjectDelete("candle1"+ IntegerToString(i)); 
            ObjectDelete("candle2"+ IntegerToString(i)); 
       } 
       c1.load(i);
       c2.load(i+1);
       if ( c1.body+c2.body > Body_Size*Point &&
            c1.shadow <= Percent1*c1.body/100  &&
            ( c1.body>=Percent2*(c1.body+c2.body)/100 || c2.body>=Percent2*(c1.body+c2.body)/100 ) &&
            ( Search_Big_Body(c1.body, i+2, Depth) || Search_Big_Body(c2.body, i+2, Depth) ) &&
            ( ( c1.close>c2.close && c1.close>c2.open ) || ( c1.close<c2.close && c1.close<c2.open ) )
          )   
       {
           ObjectCreate ("candle1"+ IntegerToString(i),  
                         OBJ_TEXT,  
                         0,  
                         time[i],  
                         high[i]+StepPer()*Point); 
           ObjectCreate ("candle2"+ IntegerToString(i),  
                         OBJ_TEXT,  
                         0,  
                         time[i+1],  
                         high[i+1]+StepPer()*Point);
           ObjectSet ("candle1"+IntegerToString(i),  
                      OBJPROP_ANGLE,  
                      TextAngle); 
           ObjectSet ("candle2"+IntegerToString(i),  
                      OBJPROP_ANGLE,  
                      TextAngle );        
           ObjectSetText("candle1"+IntegerToString(i),  
                         "2",  
                         TextSize,  
                         NULL,  
                         TextColor);  
           ObjectSetText ("candle2"+IntegerToString(i),  
                          "1",  
                          TextSize,  
                          NULL,  
                          TextColor);
      }  
   } 
   return(rates_total);
}

bool Search_Big_Body (double Body, int Start_Index, int Length)
{
   candle c;
   int i = 0;
   while ( i < Length ) 
   {
       c.load(i+Start_Index);
       if ( Body<c.body ) 
       {
          return false;
       }
       i++;
   }
   return true;
}

int StepPer () 
{ 
     int i = 0; 
     switch (Period()) 
     { 
          case PERIOD_M1: 
          i = 5; 
          break; 
          case PERIOD_M5: 
          i = 15; 
          break; 
          case PERIOD_M15: 
          i = 25; 
          break; 
          case PERIOD_M30: 
          i = 40; 
          break; 
          case PERIOD_H1: 
          i = 60; 
          break; 
          case PERIOD_H4: 
          i = 90; 
          break; 
          case PERIOD_D1: 
          i = 220; 
          break; 
          case PERIOD_W1: 
          i = 500; 
          break; 
          case PERIOD_MN1: 
          i = 2000; 
          break; 
          default:  
          break; 
     } 
     return (i); 
}
Выглядит в работе вот так:

Во вложении можно скачать файл с индикатором. Назвал я его "Две свечи" :wink2:
[mp3]http://cdndl.zaycev.net/47568/12595/Gorky+Park_-_%D0%94%D0%B2%D0%B5+%D0%A1%D0%B2%D0%B5%D1%87%D0%B8+.mp3[/mp3] :_111:
 

Вложения

  • two_candles.jpg
    two_candles.jpg
    157.6 KB · Просмотры: 469
  • two_candles.zip
    2.1 KB · Просмотры: 86
Последнее редактирование:
Регистрация
10.04.2011
Сообщения
2,217
Реакции
1,182
Поинты
0.000
В общем, советника я написал, добавив фильтр входа (ADX). Тейкпрофит фиксированный. Стоп по хай-лоу свечей плюс фильтр. На 30-минутках (EURUSD) оптимизировал на двухлетней истории по двум параметрам (Body_Size и тейкпрофиту), и он не слил на тесте за 17 лет (2000 по 2016) на тех же параметрах (естественно, спред учитывался). Но...
Прибыльность 1.12, что обычное явление для "свечных" советников, да еще на таких больших временных исторических интервалах. "Выхлоп" весьма скучный. В банке за 17 лет больше бы вышло :)
"Копать" здесь надо в сторону тейкпрофита. Америку не открою, если напишу, что он должен быть динамическим. Но это актуальная задача большинства (если не всех) ТС.
Также понятно, что параметр индикатора Body_Size привязан к таймфрейму (старше таймфрейм - больше Body_Size). Учитывая, что рынок изменчив, этот параметр в идеале также должен быть динамическим и определяться из истории по некому несложному алгоритму. Но это совсем другая история.
 
Последнее редактирование:

Forex Mafia Group

Новичок
Регистрация
22.07.2016
Сообщения
773
Реакции
133
Поинты
0.000
Сумма размера тел 2х свечей от 10п.
Тень последней свечи не более 35% от размера ее тела
Одна из этих свечей не менее 40% от общего размера (сумм тел) этих 2х свечей
Тело одной из этих 2 свечей в пунктах больше, чем тело одной из последних 21 свечи
Закрытие последней свечи больше тела предыдущей свечи.

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

З.Ы. Хотел прикрепить картинку, для более подробного понимания, но тут надо 5 сообщений написать, если что, могу выслать в ЛС

Приветствую. Если все еще интересен советник то могу предложить услуги по его написанию.
 
Регистрация
10.04.2011
Сообщения
2,217
Реакции
1,182
Поинты
0.000
Приветствую. Если все еще интересен советник то могу предложить услуги по его написанию.
Ничего его не интересует. Зашел. Отметился темой и ушел восвояси. Даже не вернулся тему обсуждать.
 
Сверху Снизу