Ancora una volta, si tratta dell'eterno: trend/flat. - pagina 13

 
Andrey Dik:

ok

Se non ti dispiace, mostraci uno screenshot del grafico così possiamo vedere di cosa stiamo parlando.

//+------------------------------------------------------------------+
//|                                                  Flat_trend.mq5 |
//|                                   Copyright © 2016, prostotrader |
//|                                                  http://mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, prostotrader"
#property link      "http://mql5.com"
#property version   "1.00"
#property description "Flat trend indicator"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Max
#property indicator_label1  "FT"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrYellow
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- Levels
#property indicator_level1 0
#property indicator_level2 0
#property indicator_levelwidth 1
#property indicator_levelstyle STYLE_DOT
//
input double FTLine = 50; //Граница флэта
//
//--- indicator buffers
double Buff[];
double deals;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
  IndicatorSetInteger(INDICATOR_DIGITS,0);
  IndicatorSetString(INDICATOR_SHORTNAME,"Flat_trend");
  SetIndexBuffer(0,Buff,INDICATOR_DATA);
  ArraySetAsSeries(Buff,true);
  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---
  IndicatorSetInteger(INDICATOR_LEVELCOLOR, 0, clrRed );
  IndicatorSetInteger(INDICATOR_LEVELCOLOR, 1, clrRed );
  IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, FTLine );
  IndicatorSetDouble(INDICATOR_LEVELVALUE, 1, -FTLine );  
  IndicatorSetDouble( INDICATOR_MAXIMUM, 105 );
  IndicatorSetDouble( INDICATOR_MINIMUM, -105 );
//---
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator Get all deals                                   |
//+------------------------------------------------------------------+
double GetDeals(const string a_symbol, const datetime start, const datetime end)
{
  MqlTick ticks[];
  int buy_deal = 0;
  int sell_deal = 0;
  ulong a_end = ulong(end) * 1000;
  ulong a_start = ulong(start) * 1000;
  int result = CopyTicks(a_symbol, ticks, COPY_TICKS_TRADE, a_start, 0);
  if (result > 0 )
  {
    for(int i =0; i<result; i++)
    {
      if (ulong(ticks[i].time_msc) <= a_end)
      {
        if((ticks[i].flags &TICK_FLAG_BUY)==TICK_FLAG_BUY) buy_deal++;
        if((ticks[i].flags &TICK_FLAG_SELL)==TICK_FLAG_SELL) sell_deal++;
      }
    }
      return(double(buy_deal-sell_deal));
  }
  return( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
{
  datetime times[];
  datetime end;
  int result = CopyTime(Symbol(), PERIOD_CURRENT, 0, 1, times);
  if (result==1)
  {
    end = TimeTradeServer();
    deals = GetDeals(Symbol(), times[0], end);
  }
//---    
  if (prev_calculated==0)
  {
    ArrayInitialize(Buff, 0);
    Buff[0] = deals;
  }
  else
  {
    int a_diff = rates_total - prev_calculated;
    if (a_diff > 1)
    {
      for (int i = 1; i<(rates_total - a_diff-1); i++)
      {
        Buff[i] = Buff[i+1];
      }
    }
    Buff[0] = deals;
  }
//--- return value of prev_calculated for next call
  return(rates_total);
}
//+------------------------------------------------------------------+
 

Buon indicatore, semplice e di buon gusto! Segnato molto uniformemente, semplicemente sorprendente.

 
Andrey Dik:

Buon indicatore, semplice e di buon gusto! Segnato molto uniformemente, semplicemente sorprendente.

 
prostotrader:

Hmm... Lei ha un'immagine più allegra, un'immagine vivace.

Ma seriamente, cosa mostra? Cos'è adesso, T o F?

 
prostotrader:
Uno riguarda Tommaso, l'altro Eremia). Su un grafico c'è Forex, che non ha mai avuto queste informazioni, e sull'altro c'è FORTS. Due grandi differenze).
 
Yuriy Asaulenko:
Uno riguarda Thomas, l'altro Yerema). In un grafico c'è Forex, che non ha mai avuto tali informazioni, e nell'altro c'è FORTS. Due grandi differenze).

Non riesci a pensare con la tua testa?

Che differenza fa FORTS o FOREX in questo caso?

 
Yuriy Asaulenko:
Uno riguarda Tommaso, l'altro Eremia). C'è Forex su un grafico, che non ha mai avuto tali informazioni, e FORTS sull'altro. Due grandi differenze).

Aaaa.... Allora tutto ha un senso! È diventato subito chiaro dov'è la tendenza e dov'è il piatto.... Non fatemi ridere, per favore.

Che differenza fa, i forti, il forex o lo scambio di kortofel di Baba Mani? Dov'è la correlazione tra il rapporto tra venditori e compratori mostrato nel grafico?

È stato detto "ma non troverete una definizione migliore di flat/trend", quindi è quello che sto chiedendo, dove lo mostra l'indicatore?

Houston, rispondi, siamo stati battuti...

 
Andrey Dik:

Aaaa.... Allora tutto ha un senso! È diventato subito chiaro dov'è la tendenza e dov'è il piatto.... Non fatemi ridere, per favore.

Che differenza fa, i forti, il forex o lo scambio di kortofel di Baba Mani? Dov'è la correlazione tra il rapporto tra venditori e compratori mostrato nel grafico?

È stato detto "ma non troverete una definizione migliore di flat/trend", quindi è quello che sto chiedendo, dove lo mostra l'indicatore?

Houston, rispondi, siamo stati battuti...

Direttamente dall'ospedale....

 
prostotrader:
Esattamente dall'ospedale....

Non preoccupatevi, è fuori tema.

Hai mostrato il codice, molto bene! Ma cosa mostra l'indicatore? Spiega, mostra la corrispondenza tra l'indicatore e le aree sul grafico. Voglio vedere - l'indicatore mostra piatto, guardiamo il grafico - hmm, è davvero piatto!

L'indicatore va bene, è bello, ma non mostra altro che 3 linee tratteggiate orizzontali. Forse dietro c'è un significato molto profondo ma nascosto che io non vedo. Aiutatemi a capire, per favore.

 
Andrey Dik:

Non preoccupatevi, è fuori tema.

Hai mostrato il codice, molto bene! Ma cosa mostra l'indicatore? Spiega, mostra la corrispondenza tra l'indicatore e le aree sul grafico. Voglio vedere - l'indicatore mostra piatto, guardiamo il grafico - hmm, è davvero piatto!

L'indicatore va bene, è bello, ma non mostra altro che 3 linee tratteggiate orizzontali. Forse dietro c'è un significato molto profondo ma nascosto che io non vedo. Aiutatemi a capire, per favore.

Quindi non hai una tabella di trade nel tuo conto.

Ecco perché CopyTicks non mostra nemmeno le transazioni

Motivazione: