一个非常有用的指标 - 页 2 1234567 新评论 __zeus__ 2019.10.25 07:56 #11 也许你应该录个视频,把交易系统放上去? Renat Akhtyamov 2019.10.25 08:28 #12 __zeus__: 也许你应该录个视频,把交易系统放上去? 国家是足够的。 Dmitriy Skub 2019.10.25 09:39 #13 __zeus__: 你想得到一些好处,就去吧。 去看布伦特的故事11.19 你去那里,那是一个不同的故事!你已经可以看到幻想的飞翔,无拘无束的想象力,等等)。 __zeus__ 2019.10.25 10:01 #14 Dmitriy Skub: 好吧,那是另一个故事!在这里,你可以看到幻想的飞翔,无拘无束的想象力,等等)。 不要浪费任何人的时间。 你似乎没有更好的事情可做。 Dmitriy Skub 2019.10.25 17:11 #15 __zeus__: 你没有什么建设性的意见。 你似乎没有更好的事情可做。 宾果,你猜对了!) prostotrader 2019.10.25 17:26 #16 __zeus__: 所有在现实生活中,从字里行间可以看出,你没有使用这个指标。 在你开始胡说八道之前,请将它与YuCluster或Delta Volume Histogram进行比较。 如果你有最近的历史,这难道不意味着什么吗? 好吧,如果你这么喜欢这个指标,而你又不想听别人的,那么这就是一件小事。 试着在它上面进行交易.... 添加 这里有一个实时 指标(礼物)。 //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+ prostotrader 2019.10.25 18:56 #17 而这个指标同时显示了实时的交易和交易量 //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+ Vitalii Ananev 2019.10.25 19:16 #18 prostotrader: 好吧,既然你这么喜欢这个指标,又不想听别人的,那就只做一点吧。 试着在它上面进行交易.... 添加 这里有一个实时 工作的指标(礼物)。 你们有类似于QuickBooks的东西吗? __zeus__ 2019.10.25 19:38 #19 prostotrader: 但这个指标同时显示了实时的交易和交易量 根据这些指标进行交易,就像换了一坨屎,效果是暂时的。 prostotrader 2019.10.25 20:27 #20 __zeus__: 用这些指标交易就像交易一坨屎,效果只是暂时的。 你要交易的东西很糟糕。 但图形是美丽的:) 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
也许你应该录个视频,把交易系统放上去?
你想得到一些好处,就去吧。
去看布伦特的故事11.19
你去那里,那是一个不同的故事!你已经可以看到幻想的飞翔,无拘无束的想象力,等等)。
好吧,那是另一个故事!在这里,你可以看到幻想的飞翔,无拘无束的想象力,等等)。
不要浪费任何人的时间。 你似乎没有更好的事情可做。
你没有什么建设性的意见。 你似乎没有更好的事情可做。
所有在现实生活中,从字里行间可以看出,你没有使用这个指标。
在你开始胡说八道之前,请将它与YuCluster或Delta Volume Histogram进行比较。
如果你有最近的历史,这难道不意味着什么吗?
好吧,如果你这么喜欢这个指标,而你又不想听别人的,那么这就是一件小事。
试着在它上面进行交易....
添加
这里有一个实时 指标(礼物)。
而这个指标同时显示了实时的交易和交易量
好吧,既然你这么喜欢这个指标,又不想听别人的,那就只做一点吧。
试着在它上面进行交易....
添加
这里有一个实时 工作的指标(礼物)。
你们有类似于QuickBooks的东西吗?
但这个指标同时显示了实时的交易和交易量
根据这些指标进行交易,就像换了一坨屎,效果是暂时的。
用这些指标交易就像交易一坨屎,效果只是暂时的。
你要交易的东西很糟糕。
但图形是美丽的:)