Çok kullanışlı gösterge - sayfa 2

 
Bir video kaydedip ticaret sistemini hemen yayınlayabilir misiniz?
 
__zeus__ :
Bir video kaydedip ticaret sistemini hemen yayınlayabilir misiniz?
yeterli durum
 
__zeus__ :

Kanıt lazım, al

Yün hikayesine git Brent 11.19

Peki, bu tamamen farklı bir konu! Burada zaten düşünce uçuşunu, dizginsiz fanteziyi vb. görebilirsiniz. ve hatta benzeri))

 
Dmitriy Skub :

Peki, bu tamamen farklı bir konu! Burada zaten düşünce uçuşunu, dizginsiz fanteziyi vb. görebilirsiniz. ve hatta benzeri))

Sizden yapıcı bir şey yok, başkalarının zamanını boşa harcamayın. Yol boyunca yapacak bir şeyiniz yok ve burada lud yapıyorsunuz.

 
__zeus__ :

Sizden yapıcı bir şey yok, başkalarının zamanını boşa harcamayın. Yol boyunca yapacak bir şeyiniz yok ve burada lud yapıyorsunuz.

Bingo, tahmin ettin!
 
__zeus__ :

Her şey gerçek hayatta, sözlerden bu göstergenin kullanılmadığı açıktır.

Kar fırtınası taşımadan önce YuCluster veya Delta Volume Histogram ile karşılaştırın.

Taze tarihin varlığı bir şey ifade etmiyor mu?

Bu göstergeyi çok sevdiğinize ve kimseyi dinlemek istemediğinize göre, o zaman size kalmış.

Üzerinde ticaret yapmayı deneyin....

Katma

İşte canlı bir gösterge (hediye)

 //+------------------------------------------------------------------+
//|                                                     FVolumes.mq5 |
//|                                      Copyright 2019 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019 prostotrader"
#property link        "https://www.mql5.com"
#property version    "1.00"
#define on_call - 111

#property indicator_separate_window
//---
#property indicator_buffers 2
#property indicator_plots    2

//--- plot Label1
#property indicator_label1    "Sell vol"
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    3
//---
#property indicator_label2    "Buy vol"
#property indicator_type2    DRAW_HISTOGRAM
#property indicator_color2    clrBlue
#property indicator_style2    STYLE_SOLID
#property indicator_width2    3
//---
double SellBuf[], BuyBuf[];
ulong sell_vol, buy_vol;
ulong start_time;
MqlTick ticks[];
bool is_book;
int event_cnt;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{
  event_cnt = 0 ;
   if ( CopyTicks ( Symbol (), ticks, COPY_TICKS_TRADE , 0 , 1 ) == 1 )
  {
    start_time = ticks[ 0 ].time_msc + 1 ;
  }
   else
  {
     Alert ( "Не получено начальное время тиков!" );
     return ( INIT_FAILED );
  }   
  is_book = MarketBookAdd ( Symbol ());
   if (is_book == false )
  {
     Alert ( "Не добавлен стакан по символу " + Symbol ());
     return ( INIT_FAILED );
  }
//--- Set buffers 
   IndicatorSetInteger ( INDICATOR_DIGITS , 0 );
   IndicatorSetString ( INDICATOR_SHORTNAME , "FVolumes" );
//---Set buffers
   SetIndexBuffer ( 0 ,SellBuf, INDICATOR_DATA );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (SellBuf, true );

   SetIndexBuffer ( 1 ,BuyBuf, INDICATOR_DATA );
   PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (BuyBuf, true );
//--- indicator buffers mapping
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+  
void OnDeinit ( const int reason)
{
   if (is_book == true )   MarketBookRelease ( Symbol ());
}

//+------------------------------------------------------------------+
//| Custom indicator On book event function                          |
//+------------------------------------------------------------------+
void OnBookEvent ( const string &symbol)
{
   if (symbol == Symbol ())
  {
     double price[];
     OnCalculate (event_cnt,event_cnt,on_call,price); 
  }
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
bool GetVolumes( ulong &s_vol, ulong &b_vol)
{
  s_vol = 0 ;
  b_vol = 0 ;
   int result = CopyTicks ( Symbol (), ticks, COPY_TICKS_TRADE , start_time, 0 );
   if (result > 0 )
  {
     for ( int i = 0 ; i < result; i++)
    {
       if ((ticks[i].flags& TICK_FLAG_SELL )== TICK_FLAG_SELL ) 
      { 
        s_vol += ticks[i].volume;
      }
       else
       if ((ticks[i].flags& TICK_FLAG_BUY )== TICK_FLAG_BUY ) 
      { 
        b_vol += ticks[i].volume; 
      }
    }
    start_time = ticks[ 0 ].time_msc + 1 ;
     return ( true );
  }
   return ( false );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
{
   if (prev_calculated == 0 )
  {
     ArrayInitialize (SellBuf, EMPTY_VALUE );
     ArrayInitialize (BuyBuf, EMPTY_VALUE );
    SellBuf[ 0 ]= 0 ;
    BuyBuf[ 0 ] = 0 ;
  }
//---
   if (GetVolumes(sell_vol, buy_vol)== true )
  {
    SellBuf[ 0 ] -= double (sell_vol);
    BuyBuf[ 0 ] += double (buy_vol);
  }  
//--- return value of prev_calculated for next call
  event_cnt=rates_total;
   return (rates_total);
}
//+------------------------------------------------------------------+
 

Ancak bu gösterge hem işlemleri hem de hacimleri gerçek zamanlı olarak gösterir.

 //+------------------------------------------------------------------+
//|                                                    DealsLent.mq5 |
//|                                Copyright 2016-2018, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016-2018, prostotrader"
#property link        "https://www.mql5.com"
#property version    "1.04"
#define on_call - 111    //Отрицательное число для вызова функции OnCalculate
// (данные не могут быть в отрицательном диаппозоне)
//---
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots    4
//--- plot Label1
#property indicator_label1    "Sell"
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1    clrLightPink
#property indicator_style1    STYLE_SOLID
#property indicator_width1    5
//--- plot Label2
#property indicator_label2    "Sell_vol"
#property indicator_type2    DRAW_HISTOGRAM
#property indicator_color2    clrRed
#property indicator_style2    STYLE_SOLID
#property indicator_width2    5
//--- plot Label3
#property indicator_label3    "Buy"
#property indicator_type3    DRAW_HISTOGRAM
#property indicator_color3    clrLightSkyBlue
#property indicator_style3    STYLE_SOLID
#property indicator_width3    5
//--- plot Label4
#property indicator_label4    "Buy_vol"
#property indicator_type4    DRAW_HISTOGRAM
#property indicator_color4    clrBlue
#property indicator_style4    STYLE_SOLID
#property indicator_width4    5
//--- indicator buffers
double SellBuffer[];
double BuyBuffer[];
double SellVol[];
double BuyVol[];
ulong sell_all;
ulong buy_all;
ulong sell_all_vol;
ulong buy_all_vol;
ulong start_time;
ulong last_tick_time;
int event_cnt;
int mem_bars;
bool is_book;    
MqlTick ticks[];
//
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   sell_all = 0 ;
   buy_all = 0 ;
   sell_all_vol = 0 ;
   buy_all_vol = 0 ; 
   event_cnt= 0 ;
   is_book = MarketBookAdd ( Symbol ());
//--- Set buffers 
   IndicatorSetInteger ( INDICATOR_DIGITS , 0 );
   IndicatorSetString ( INDICATOR_SHORTNAME , "DealsLent" );
//---Set buffers
   SetIndexBuffer ( 0 ,SellBuffer, INDICATOR_DATA );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (SellBuffer, true );
   SetIndexBuffer ( 1 ,SellVol, INDICATOR_DATA );
   PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (SellVol, true );
   SetIndexBuffer ( 2 ,BuyBuffer, INDICATOR_DATA );
   PlotIndexSetDouble ( 2 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (BuyBuffer, true );
   SetIndexBuffer ( 3 ,BuyVol, INDICATOR_DATA );
   PlotIndexSetDouble ( 3 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (BuyVol, true );

 //---Set objects
   int window= ChartWindowFind ( ChartID (), "DealsLent" );
   ObjectCreate ( ChartID (), "Dl_label_1" , OBJ_LABEL ,window, 0 , 0 );
   ObjectCreate ( ChartID (), "Dl_label_2" , OBJ_LABEL ,window, 0 , 0 );
   ObjectCreate ( ChartID (), "Dl_label_3" , OBJ_LABEL ,window, 0 , 0 );
   ObjectCreate ( ChartID (), "Dl_label_4" , OBJ_LABEL ,window, 0 , 0 );
   ObjectSetInteger ( ChartID (), "Dl_label_1" , OBJPROP_YDISTANCE , 30 );
   ObjectSetInteger ( ChartID (), "Dl_label_1" , OBJPROP_XDISTANCE , 0 );
   ObjectSetInteger ( ChartID (), "Dl_label_2" , OBJPROP_YDISTANCE , 60 );
   ObjectSetInteger ( ChartID (), "Dl_label_2" , OBJPROP_XDISTANCE , 0 );
   ObjectSetInteger ( ChartID (), "Dl_label_3" , OBJPROP_YDISTANCE , 15 );
   ObjectSetInteger ( ChartID (), "Dl_label_3" , OBJPROP_XDISTANCE , 0 );
   ObjectSetInteger ( ChartID (), "Dl_label_4" , OBJPROP_YDISTANCE , 45 );
   ObjectSetInteger ( ChartID (), "Dl_label_4" , OBJPROP_XDISTANCE , 0 );
   ObjectSetInteger ( ChartID (), "Dl_label_1" , OBJPROP_COLOR , clrLightPink );
   ObjectSetInteger ( ChartID (), "Dl_label_2" , OBJPROP_COLOR , clrLightSkyBlue );
   ObjectSetInteger ( ChartID (), "Dl_label_3" , OBJPROP_COLOR , clrLightPink );
   ObjectSetInteger ( ChartID (), "Dl_label_4" , OBJPROP_COLOR , clrLightSkyBlue );
   ObjectSetString ( ChartID (), "Dl_label_1" , OBJPROP_TEXT , "Сум. объём Sell: 0" );
   ObjectSetString ( ChartID (), "Dl_label_2" , OBJPROP_TEXT , "Сум. объём Buy: 0" );
   ObjectSetString ( ChartID (), "Dl_label_3" , OBJPROP_TEXT , "Сум. кол-во Sell: 0" );
   ObjectSetString ( ChartID (), "Dl_label_4" , OBJPROP_TEXT , "Сум. кол-во Buy: 0" );
//---
   PlotIndexSetInteger ( 0 , PLOT_SHOW_DATA , false );
   PlotIndexSetInteger ( 1 , PLOT_SHOW_DATA , false );
   PlotIndexSetInteger ( 2 , PLOT_SHOW_DATA , false );
   PlotIndexSetInteger ( 3 , PLOT_SHOW_DATA , false );
   ChartRedraw ( ChartID ());
   if ( CopyTicks ( Symbol (), ticks, COPY_TICKS_TRADE , 0 , 1 ) == 1 )
   {
     last_tick_time = ticks[ 0 ].time_msc;
     start_time = GetMicrosecondCount ();
     mem_bars = Bars ( Symbol (), PERIOD_CURRENT );
   }
   else return ( INIT_FAILED );  
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+  
void OnDeinit ( const int reason)
{
   if (is_book == true ) MarketBookRelease ( Symbol ());
   ObjectDelete ( ChartID (), "Dl_label_1" );
   ObjectDelete ( ChartID (), "Dl_label_2" );
   ObjectDelete ( ChartID (), "Dl_label_3" );
   ObjectDelete ( ChartID (), "Dl_label_4" );
   if (reason== REASON_INITFAILED )
  {
     int window= ChartWindowFind ();
     ChartIndicatorDelete ( ChartID (),window, "DealsLent" );
  }
}
//+------------------------------------------------------------------+
//| Custom indicator On book event function                          |
//+------------------------------------------------------------------+
void OnBookEvent ( const string &symbol)
{
   if (symbol== Symbol ())
  {
     double price[];
     OnCalculate (event_cnt,event_cnt,on_call,price);                       //Вызов функции для обработки данных 
  }
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void GetData( double & s_data, double & b_data, double & s_vol, double & b_vol)
{
  s_data = 0 ;
  b_data = 0 ;
  s_vol = 0 ;
  b_vol = 0 ;
   ulong delta_time = ulong ( MathAbs ( double ( GetMicrosecondCount () - start_time)));
   int result = CopyTicksRange ( Symbol (), ticks, COPY_TICKS_TRADE , last_tick_time, last_tick_time + delta_time);
   if (result > 0 )
  {
     for ( int i = 0 ; i < result; i++)
    {
       if ((ticks[i].flags& TICK_FLAG_SELL )== TICK_FLAG_SELL ) 
      { 
        s_data++;
        s_vol += double (ticks[i].volume);
      }
       else
       if ((ticks[i].flags& TICK_FLAG_BUY )== TICK_FLAG_BUY ) 
      { 
        b_data++;
        b_vol += double (ticks[i].volume); 
      }
    }
    last_tick_time = ticks[ 0 ].time_msc + 1 ;
    start_time = GetMicrosecondCount ();
  }
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
{
   if (prev_calculated== 0 )
  {
     ArrayInitialize (SellBuffer, EMPTY_VALUE );
     ArrayInitialize (BuyBuffer, EMPTY_VALUE );
     ArrayInitialize (SellVol, EMPTY_VALUE );
     ArrayInitialize (BuyVol, EMPTY_VALUE );
  }
   else
  {
     int cur_bars = Bars ( Symbol (), PERIOD_CURRENT );
     if (cur_bars < 10 ) return (prev_calculated);
     if ((begin != on_call) && (mem_bars != cur_bars))
    {
      mem_bars = cur_bars;
      sell_all = 0 ;
      buy_all = 0 ;
      sell_all_vol = 0 ;
      buy_all_vol = 0 ;
      SellBuffer[ 1 ] = EMPTY_VALUE ;
      SellVol[ 2 ] = EMPTY_VALUE ;
      BuyBuffer[ 3 ] = EMPTY_VALUE ;
      BuyVol[ 4 ] = EMPTY_VALUE ;
    }
     double sell_data, buy_data, sell_vol, buy_vol;
    GetData(sell_data, buy_data, sell_vol, buy_vol);
     if (sell_data > 0.0 )
    {
      SellBuffer[ 0 ] = sell_data;
      sell_all += ulong (sell_data);
    } 
     if (sell_vol > 0.0 )
    {
      SellVol[ 1 ] = sell_vol;
      sell_all_vol += ulong (sell_vol);
    }
     if (buy_data > 0.0 )
    {
      BuyBuffer[ 2 ] = buy_data;
      buy_all += ulong (buy_data);
    }
     if (buy_vol > 0.0 )
    {
      BuyVol[ 3 ] = buy_vol;
      buy_all_vol += ulong (buy_vol);
    }
  } 
   ObjectSetString ( ChartID (), "Dl_label_1" , OBJPROP_TEXT , "Сум. объём Sell: " + string (sell_all_vol));
   ObjectSetString ( ChartID (), "Dl_label_2" , OBJPROP_TEXT , "Сум. объём Buy: " + string (buy_all_vol));
   ObjectSetString ( ChartID (), "Dl_label_3" , OBJPROP_TEXT , "Сум. кол-во Sell: " + string (sell_all));
   ObjectSetString ( ChartID (), "Dl_label_4" , OBJPROP_TEXT , "Сум. кол-во Buy: " + string (buy_all));
   ChartRedraw ( ChartID ());  
  event_cnt=rates_total;
//--- return value of prev_calculated for next call
   return (rates_total);
}
//+------------------------------------------------------------------+
 
prostotrader :

Bu göstergeyi çok sevdiğinize ve kimseyi dinlemek istemediğinize göre, o zaman size kalmış.

Üzerinde ticaret yapmayı deneyin....

Katma

İşte canlı bir gösterge (hediye)

Quik için benzer bir şeyiniz var mı?

 
prostotrader :

Ancak bu gösterge hem işlemleri hem de hacimleri gerçek zamanlı olarak gösterir.

bu göstergeler üzerinde işlem yapmak sabun için bir bız değiştirmek gibidir, etkisi geçicidir.

 
__zeus__ :

bu göstergeler üzerinde işlem yapmak sabun için bir bız değiştirmek gibidir, etkisi geçicidir.

Ne takas edeceksin - sadece berbat,

gerçekten güzel grafikler :)