Мои комментарии
  • Ostap Bander форексная оторва
    18 сентября 2026, 15:43
    Jack_the_singer, алиса код почти рабочий для индикатора или советника может выдать, на mql5. ну ошибки она исправлять точно умеет))
  • Ostap Bander форексная оторва
    18 сентября 2026, 15:34
    ezomm, статистически нет, есть периоды на валютных парах, когда инструмент прет и прёт без откатов вверх или вниз по 8-12 дней. И попробуй докажи этому инструменту что он не должен так себя вести.
  • Ostap Bander форексная оторва
    18 сентября 2026, 11:36
    посиди на берегу реки, послушай лягушек(если они квакают), отложи торг. терминал в сторону и просто подожди
  • Ostap Bander форексная оторва
    18 сентября 2026, 11:25

     код на  mql5

    //+------------------------------------------------------------------+
    //|                                        MA_Signal_H1.mq5         |
    //|  Сигналы: MA10 vs MA200 + свечной паттерн на H1                 |
    //|  Отображение: отдельное окно                                    |
    //+------------------------------------------------------------------+
    #property copyright «MA Signal H1»
    #property version   «1.01»
    #property indicator_separate_window
    #property indicator_buffers 3
    #property indicator_plots   2

    //--- Параметры
    input int    InpPeriodMA10   = 10;
    input int    InpPeriodMA200  = 200;
    input ENUM_MA_METHOD InpMethod = MODE_SMA;
    input ENUM_APPLIED_PRICE InpPrice = PRICE_CLOSE;

    //--- Буферы
    double BufferLong[];    // стрелки лонг (значение 1)
    double BufferShort[];   // стрелки шорт (значение -1)
    double BufferSignal[];  // числовой сигнал: 1, -1, 0 (для EA)

    //--- Хэндлы индикаторов
    int handleMA10;
    int handleMA200;

    //+------------------------------------------------------------------+
    int OnInit()
    {
       SetIndexBuffer(0, BufferLong,    INDICATOR_DATA);
       SetIndexBuffer(1, BufferShort,   INDICATOR_DATA);
       SetIndexBuffer(2, BufferSignal,  INDICATOR_CALCULATIONS);

       //--- Plot 0: Long (стрелка вверх на уровне 1)
       PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
       PlotIndexSetString (0, PLOT_LABEL,    «Long»);
       PlotIndexSetInteger(0, PLOT_ARROW,    233);
       PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrLime);
       PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 3);
       PlotIndexSetDouble (0, PLOT_EMPTY_VALUE, EMPTY_VALUE);

       //--- Plot 1: Short (стрелка вниз на уровне -1)
       PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_ARROW);
       PlotIndexSetString (1, PLOT_LABEL,    «Short»);
       PlotIndexSetInteger(1, PLOT_ARROW,    234);
       PlotIndexSetInteger(1, PLOT_LINE_COLOR, clrRed);
       PlotIndexSetInteger(1, PLOT_LINE_WIDTH, 3);
       PlotIndexSetDouble (1, PLOT_EMPTY_VALUE, EMPTY_VALUE);

       //--- Окно: фиксируем шкалу от -1.5 до 1.5
       IndicatorSetInteger(INDICATOR_DIGITS, 0);
       IndicatorSetDouble(INDICATOR_MINIMUM, -1.5);
       IndicatorSetDouble(INDICATOR_MAXIMUM,  1.5);

       handleMA10  = iMA(_Symbol, PERIOD_CURRENT, InpPeriodMA10,  0, InpMethod, InpPrice);
       handleMA200 = iMA(_Symbol, PERIOD_CURRENT, InpPeriodMA200, 0, InpMethod, InpPrice);

       if(handleMA10 == INVALID_HANDLE || handleMA200 == INVALID_HANDLE)
          return INIT_FAILED;

       return INIT_SUCCEEDED;
    }

    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
       IndicatorRelease(handleMA10);
       IndicatorRelease(handleMA200);
    }

    //+------------------------------------------------------------------+
    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[])
    {
       int minBars = MathMax(InpPeriodMA10, InpPeriodMA200) + 4;
       if(rates_total < minBars)
          return 0;

       double ma10[], ma200[];
       if(CopyBuffer(handleMA10,  0, 0, rates_total, ma10)  <= 0) return 0;
       if(CopyBuffer(handleMA200, 0, 0, rates_total, ma200) <= 0) return 0;

       int start = (prev_calculated > 1)? prev_calculated — 1: 3;

       for(int i = start; i < rates_total — 1; i++)
       {
          BufferLong[i]   = EMPTY_VALUE;
          BufferShort[i]  = EMPTY_VALUE;
          BufferSignal[i] = 0;

          bool c1_rising = close[i]       > open[i];
          bool c2_falling = close[i — 1]  < open[i — 1];
          bool c3_falling  = close[i — 2] < open[i — 2];

          bool c1_falling  = close[i]    < open[i];
          bool c2_rising  = close[i — 1] > open[i — 1];
          bool c3_rising = close[i — 2]  > open[i — 2];

          //--- Long: MA10 > MA200, 2 падающие, перед ними 1 растущая
          if(ma10[i] > ma200[i] && c3_falling && c2_falling && c1_rising)
          {
             BufferLong[i]   = 1;
             BufferSignal[i] = 1;
          }

          //--- Short: MA10 < MA200, 2 растущие, перед ними 1 падающая
          if(ma10[i] < ma200[i] && c3_rising && c2_rising && c1_falling)
          {
             BufferShort[i]  = -1;
             BufferSignal[i] = -1;
          }
       }

       //--- Текущий (формирующийся) бар — без сигнала
       if(rates_total > 0)
       {
          BufferLong[rates_total — 1]   = EMPTY_VALUE;
          BufferShort[rates_total — 1]  = EMPTY_VALUE;
          BufferSignal[rates_total — 1] = 0;
       }

       return rates_total;
    }

  • Ostap Bander форексная оторва
    09 сентября 2026, 12:28
    Ну хоть кто-то это сказал.
  • Ostap Bander форексная оторва
    01 сентября 2026, 13:48
    Поэтому не принимайте цифровой руль, пусть варится в собственном цифровом соку.
  • Ostap Bander форексная оторва
    01 сентября 2026, 13:46
    Рост ММВБ до самых выборов. две недели роста на дороге не валяются, потом ожидаю падение.
    Не явл. инвест. рекомендацией.
  • структура хода цены показывает лонги, 
    треугольник(боковик) — выход вверх — тест боковика(треугольника в начале) — выход вверх — боковик и т.д.
  • А безубыток чего не ставишь?
Старый дизайн
Старый
дизайн