3_Level_ZZ_Semafor Indicator For MT5
Table Of Contents:
- 3_Level_ZZ_Semafor Indicator For MT5
- Cài đặt 3_Level_ZZ_Semafor Indicator For MT5
- Các tham số của 3_Level_ZZ_Semafor Indicator For MT5
- Bộ đệm của 3_Level_ZZ_Semafor Indicator For MT5
- Các bộ phận chính của bộ luật
3_Level_ZZ_Semafor Indicator For MT5 là phiên bản cải tiến của chỉ báo ngoằn ngoèo, rút ra các giá trị của 3 zigzags trên biểu đồ. 3 zigzag có thời gian khác nhau cho calcualtion. Do đó, một zigzag nhỏ, một giữa và một zigzag lớn bị vôi hóa. Thay vì vẽ các đường ngoằn ngoèo trên biểu đồ (sẽ làm lộn xộn biểu đồ), chỉ báo này vẽ các chấm tại các điểm ngoằn ngoèo. Các chấm có kích thước khác nhau để bạn có thể phân biệt các đường zích zắc khác nhau.
Cài đặt 3_Level_ZZ_Semafor Indicator For MT5
Sau khi bạn tải xuống chỉ báo qua biểu mẫu ở trên, bạn cần giải nén tệp zip. Sau đó, bạn cần sao chép tệp 3_level_zz_semafor.mq5 vào thư mục MQL5Indicators cài đặt MT5 của bạn. Sau đó, vui lòng khởi động lại MT5 và sau đó bạn sẽ có thể thấy chỉ báo trong danh sách các chỉ báo.
Các tham số của 3_Level_ZZ_Semafor Indicator For MT5
3_Level_ZZ_Semafor Indicator For MT5 có các tham số 15 để cấu hình.
input int Period1=5; input int Deviation1=1; input int Backstep1=3; input int HighSymbol1=159; input int LowSymbol1=159; input int Period2=13; input int Deviation2=8; input int Backstep2=5; input int HighSymbol2=108; input int LowSymbol2=108; input int Period3=34; input int Deviation3=21; input int Backstep3=12; input int HighSymbol3=163; input int LowSymbol3=163;
Bộ đệm của 3_Level_ZZ_Semafor Indicator For MT5
3_Level_ZZ_Semafor Indicator For MT5 cung cấp bộ đệm 6 .
SetIndexBuffer(0,LowBuffer1,INDICATOR_DATA); SetIndexBuffer(1,HighBuffer1,INDICATOR_DATA); SetIndexBuffer(2,LowBuffer2,INDICATOR_DATA); SetIndexBuffer(3,HighBuffer2,INDICATOR_DATA); SetIndexBuffer(4,LowBuffer3,INDICATOR_DATA); SetIndexBuffer(5,HighBuffer3,INDICATOR_DATA);
Các bộ phận chính của bộ luật
int OnCalculate(const int rates_total, // number of bars in history at the current tick const int prev_calculated,// number of bars calculated at previous call const datetime &time[], const double &open[], const double& high[], // price array of maximums of price for the indicator calculation const double& low[], // price array of minimums of price for the indicator calculation const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking the number of bars to be enough for the calculation if(rates_total lt StartBar) return(0); //---- declarations of local variables int limit,to_copy1,to_copy2,to_copy3; //---- calculation of the first starting index for the bars recalculation loop if(prev_calculated gt rates_total || prev_calculated lt =0) // checking for the first start of calculation of an indicator { limit=rates_total-StartBar; // starting index for calculation of all bars to_copy1=rates_total; to_copy2=rates_total; to_copy3=rates_total; } else { limit=rates_total-prev_calculated; to_copy1=limit+StartBar1; to_copy2=limit+StartBar2; to_copy3=limit+StartBar3; } //---- copy the newly appeared data in the indicator buffers if(CopyBuffer(Handle1,1,0,to_copy1,HighBuffer1) lt =0) return(0); if(CopyBuffer(Handle1,2,0,to_copy1,LowBuffer1) lt =0) return(0); if(CopyBuffer(Handle2,1,0,to_copy2,HighBuffer2) lt =0) return(0); if(CopyBuffer(Handle2,2,0,to_copy2,LowBuffer2) lt =0) return(0); if(CopyBuffer(Handle3,1,0,to_copy3,HighBuffer3) lt =0) return(0); if(CopyBuffer(Handle3,2,0,to_copy3,LowBuffer3) lt =0) return(0); //---- return(rates_total); } //+------------------------------------------------------------------+