Ein sehr nützlicher Indikator - Seite 2

 
Vielleicht sollten Sie ein Video aufnehmen und ein Handelssystem einrichten?
 
__zeus__:
Vielleicht sollten Sie ein Video aufnehmen und ein Handelssystem einrichten?
der Staat ist genug.
 
__zeus__:

Sie wollen ein bisschen Schwung, dann holen Sie ihn sich.

Gehe Wolle die Brent-Geschichte 11.19

Na bitte, das ist eine andere Geschichte! Sie sehen schon, der Höhenflug, die ungezügelte Fantasie, usw., usw.)

 
Dmitriy Skub:

Nun, das ist eine andere Geschichte! Hier kann man die Fantasie, die ungezügelte Vorstellungskraft usw. sehen. usw.)

Verschwenden Sie keine Zeit, Sie haben wohl nichts Besseres zu tun.

 
__zeus__:

Sie sollten niemandes Zeit verschwenden, denn Sie haben offenbar nichts Besseres zu tun.

Bingo, Sie haben es erraten!)
 
__zeus__:

Im wirklichen Leben ist aus den Worten ersichtlich, dass Sie diesen Indikator nicht verwendet haben.

Vergleichen Sie es mit YuCluster oder Delta Volume Histogram, bevor Sie anfangen, Unsinn zu erzählen.

Hat es keine Bedeutung, wenn Sie eine jüngere Geschichte haben?

Nun, wenn Ihnen dieser Indikator so gut gefällt und Sie auf niemanden hören wollen, dann ist das eine Kleinigkeit.

Versuchen Sie, damit zu handeln....

Hinzugefügt von

Hier ist ein Echtzeit-Indikator (Geschenk)

//+------------------------------------------------------------------+
//|                                                     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);
}
//+------------------------------------------------------------------+
 

Und dieser Indikator zeigt sowohl den Handel als auch das Volumen in Echtzeit an

//+------------------------------------------------------------------+
//|                                                    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:

Nun, da Ihnen dieser Indikator so gut gefällt und Sie auf niemand anderen hören wollen, müssen Sie nur ein wenig nachhelfen.

Versuchen Sie, damit zu handeln....

Hinzugefügt

Hier ist ein Indikator, der in Echtzeit funktioniert (Geschenk)

Haben Sie so etwas auch für QuickBooks?

 
prostotrader:

Aber dieser Indikator zeigt sowohl Geschäfte als auch Volumen in Echtzeit an

Der Handel mit diesen Indikatoren ist so, als würde man ein Stück Scheiße gegen ein Stück Scheiße austauschen, der Effekt ist vorübergehend.

 
__zeus__:

Der Handel mit diesen Indikatoren ist wie der Handel mit einem Stück Scheiße, die Wirkung ist nur vorübergehend.

Was Sie eintauschen werden, ist scheiße,

aber die Grafiken sind wunderschön :)