1 tập tin đính kèm Hi Guys
Bạn có biết làm thế nào để thay đổi mã này để có được MTF MACD indior này để vẽ mượt mà hơn không?
Hãy nói rằng indior được sử dụng trên M1 để vẽ M5 M5 (sử dụng cài đặt mặc định là 12, 26, 9), sau đó, indior sẽ tham chiếu mỗi giá đóng được sử dụng trong phép tính 5 lần cho đến khi chuyển sang giá trị đóng tiếp theo (sẽ là sử dụng lại 5 lần). Do đó, bạn nhận được MTF MACD đang tự bước lên cao hơn hoặc thấp hơn.
Làm thế nào điều này có thể được thay đổi để trong nhà tại bất kỳ thời điểm nào tham chiếu giá đóng cửa tiếp theo trên khung thời gian chính?
Trường hợp:
Chúng tôi đang ở trên M1 với chỉ số MTF được đặt thành 5 (TF cao hơn tiếp theo). Bây giờ để có được giá trị MACD mượt mà hơn, tôi sẽ sử dụng shift0 hiện tại và giá đóng cửa tại shift5, shift10, 15, 20, 25, v.v.
Nếu trên M5 và MTF MACD được đặt thành M15, thì bên dưới nên tham chiếu mức giá hiện tại0 và giá đóng của shift3, shift6, 9, v.v.
Tôi hình dung rằng lợi ích là giá trị MACD của khung thời gian cao hơn đang được cập nhật mỗi khi khung thời gian thấp hơn vẽ một thanh mới. Tất nhiên, nó sẽ không rút ra giá trị TF TF cao hơn chính xác như thể một MACD được vẽ trên TF cao hơn đó. Nhưng nó sẽ cung cấp cho một đường chéo không sớm hơn và tín hiệu thương mại sớm hơn.
Tôi đã chọn MTF MACD tại đây: [url = http:/codebase.mql4.com/5660].
Mã được dán bên dưới. Bạn có thể giúp tôi được không? Một số mã trong hàm start phải được thay đổi để đạt được mục tiêu của tôi.
Chúc mừng
Tomas
_______
// ----------------------------------------------- -------------------
//| MTF MACD.mq4 |
// ----------------------------------------------- -------------------
#property bản quyền mqlservice.co.uk
#property liên kết http://mqlservice.co.uk/
#property indior_separate_window
#property indior_buffers 2
#property indior_color1 Xám
#property indior_color2 Đỏ
//---- tham số đầu vào
extern int TimeFrame = 0;
extern int Fastema = 12;
extern int Slowema = 26;
tín hiệu int extern = 9;
extern int Ứng dụngprice = 0;
extern int Shift = 0;
chuỗi extern note0 = Giá áp dụng 0 - ĐÓNG | 1-MỞ | 2-CAO | 3-THẤP |;
chuỗi extern note1 = | 4-MEDIAN | 5-LOẠI | 6-TRỌNG LƯỢNG |;
chuỗi extern note2 = Khung thời gian 0 = khung thời gian hiện tại;
chuỗi ngoài ex3 = 1 = M1, 5 = M5, 15 = M15, 30 = M30;
chuỗi extern note4 = 60 = H1, 240 = H4, 1440 = D1;
chuỗi extern note5 = 10080 = W1, 43200 = MN1;
//---- bộ đệm
đôi MainBuffer [];
đôi SignalBuffer [];
// ----------------------------------------------- -------------------
//| Chức năng khởi tạo trong nhà tùy chỉnh |
// ----------------------------------------------- -------------------
int init ()
{
int draw_begin = MathMax (Fastema, Slowema);
chuỗi short_name = Giá MTF của MTF;
//---- trong nhà
Set IndexStyle (0, DRAW_HISTOGRAM, 0,2);
Set IndexBuffer (0, MainBuffer);
Set IndexStyle (1, DRAW_LINE);
Set IndexBuffer (1, SignalBuffer);
In (MTF MACD.mq4, Ver. # 2);
In (Bản quyền © 2009/05/26 Dịch vụ MQL Vương quốc Anh http://mqlservice.co.uk/);
chuyển đổi (áp dụng bảng giá) {
trường hợp 1: short_name = short_name | MỞ ; phá vỡ;
trường hợp 2: short_name = short_name | CAO ; phá vỡ;
trường hợp 3: short_name = short_name | THẤP; phá vỡ;
trường hợp 4: short_name = short_name | TRUNG TÂM; phá vỡ;
trường hợp 5: short_name = short_name | ĐIỂN HÌNH ; phá vỡ;
trường hợp 6: short_name = short_name | TRỌNG LƯỢNG; phá vỡ;
mặc định :
Áp dụngGiá = GIÁE_CLOSE; short_name = short_name | GẦN ; phá vỡ;
}
if (TimeFramelt; period ()) TimeFrame = period ();
chuỗi TFName =;
chuyển đổi (Khung thời gian)
{
trường hợp 1: TFName = M1; phá vỡ;
trường hợp 5: TFName = M5; phá vỡ;
trường hợp 15: TFName = M15; phá vỡ;
trường hợp 30: TFName = M30; phá vỡ;
trường hợp 60: TFName = H1; phá vỡ;
trường hợp 240: TFName = H4; phá vỡ;
trường hợp 1440: TFName = D1; phá vỡ;
trường hợp 10080: TFName = W1; phá vỡ;
trường hợp 43200: TFName = MN1; phá vỡ;
mặc định: TFName = Biểu đồ; Khung thời gian = Thời gian (); phá vỡ;
}
short_name = StringConenate (short_name, (TF TFName , Fastema , Slowema , Tín hiệu ));
IndiorShortName (short_name);
Set IndexDrawBegin (0, draw_begin);
Set IndexDrawBegin (1, draw_begin);
Set IndexLabel (0, Chính);
Set IndexLabel (1, Tín hiệu);
IndiorDigits (6);
trả về (0);
}
// ----------------------------------------------- -------------------
//| Chức năng khử khử trong nhà tùy chỉnh |
// ----------------------------------------------- -------------------
int deinit ()
{
//----
//----
trả về (0);
}
// ----------------------------------------------- -------------------
//| Chức năng lặp trong nhà tùy chỉnh |
// ----------------------------------------------- -------------------
int start ()
{
giới hạn int, iChart, iTF, delta = 0;
datetime TimeArray [];
if (TimeFramegt; period ()) delta = MathCeil (TimeFrameperiod ());
int Count_bars = IndiorCounted ();
//---- kiểm tra các lỗi có thể xảy ra
if (tính_barslt; 0) return (-1);
//---- thanh được tính cuối cùng sẽ được kể lại
if (Count_barsgt; 0) Count_bars--;
giới hạn = Bars-Count_bars delta;
ArrayCopySeries (TimeArray, MODE_TIME, Symbol (), TimeFrame);
iTF = 0;
cho (Biểu đồ = 0; iChart; giới hạn; iChart)
{
trong khi (Thời gian [iChart] lt; TimeArray [iTF]) iTF ;
MainBuffer [iChart] = EMPTY_VALUE;
SignalBuffer [iChart] = EMPTY_VALUE;
MainBuffer [iChart] = iMACD (Biểu tượng (), Khung thời gian, Fastema, Slowema, Tín hiệu, Ứng dụng price, MODE_MAIN, iTF Shift);
SignalBuffer [iChart] = iMACD (Biểu tượng (), Khung thời gian, Fastema, Slowema, Tín hiệu, Ứng dụng price, MODE_SIGNAL, iTF Shift);
}
trả về (0);
}
// ----------------------------------------------- -------------------
https://www.forexibroker.com/attachm...1556900020.mq4