[Cần giúp đỡ] Mời các các cao thủ codeer vào trợ giúp, lỗi 2 đường chỉ báo tự di chuyển

[Cần giúp đỡ] Mời các các cao thủ codeer vào trợ giúp, lỗi 2 đường chỉ báo tự di chuyển

[Cần giúp đỡ] Mời các các cao thủ codeer vào trợ giúp, lỗi 2 đường chỉ báo tự di chuyển

ILOVETA

Active Member
786
974
Hiện tại mình đang tập tành viết code Indicator trên MT4, mình có tìm được trên mạng viết đường MA cho RSI nhưng khi mình add đường MA vào rồi thì khi kéo chart về quá khứ thì khoảng cách 2 đường MA nó cũng di chuyển theo, ở khung chart hiện tại thì đường này nằm dưới đường kia nhưng khi kéo chart về thì đường này nó lại nằm trên đường kia, có chỗ cắt nhau nhưng khi kéo chart tới lui thì nó không còn cắt nữa. Cho dù khung giá trị có co lại hay giãn ra thì chỗ cắt cũng phải không thay đổi chứ, Mình không biết đây là lỗi gì, có ai từng gặp lỗi như vậy đi ngang chỉ giúp mình với. Thank !
 

Giới thiệu sách Trading hay
Phương Pháp Mới Để Giao Dịch Kiếm Sống

Quyển sách của Tiến sỹ Alexander Elder đề cập đến những vấn đề cơ bản và cần thiết nhất với các trader. Sách được đánh giá rất cao trên toàn cầu
property indicator_separate_window
property indicator_buffers 2
property indicator_color1 Red
property indicator_color2 Lime
property indicator_level1 -150000
property indicator_level2 150000

//---- input parameters
extern int rsi_p = 89;
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=0;
extern int NumberOfBarsToCalculate = 10000;

//---- indicator buffers
double Buffer0[];
double Buffer1[];
double Ma[];
double RSi[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
Comment("");
IndicatorBuffers(4);
//---- indicator line
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
SetIndexStyle(2,DRAW_NONE);
SetIndexStyle(3,DRAW_NONE);

SetIndexBuffer(0,Buffer0);
SetIndexBuffer(1,Buffer1);
SetIndexBuffer(2,Ma);
SetIndexBuffer(3,RSi);


IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//----

SetIndexEmptyValue(0,0);
SetIndexEmptyValue(1,0);
SetIndexEmptyValue(2,0);
SetIndexEmptyValue(3,0);
//----
return(0);
}


int start()
{
string short_name;
short_name = "RSI["+rsi_p+"] \ MA => Max bars to count: |"+(Bars-1)+"| ";
IndicatorShortName(short_name);

int shift;
double rsi = 0;
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--)
{
RSi[shift] = iRSI(NULL,0,rsi_p,PRICE_CLOSE,shift);
}
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--)
{
Ma[shift] = iMAOnArray(RSi,0,MA_Period,MA_Shift,MA_Method,shift);
Buffer0[shift] = RSi[shift];
Buffer1[shift] = Ma[shift];
}

return(0);
}
2.png 3.png

Hai cái ô đen mình khoanh tròn là khi chưa kéo chart và khi đã kéo chart à, hai cai đường màu xanh dương và xanh lá cây ở trên cắt nhau mà ở dưới nó ko cắt nữa. Ko biết bị lỗi gì luôn
 

Đính kèm

  • 2.png
    2.png
    50 KB · Xem: 5
  • 3.png
    3.png
    59.8 KB · Xem: 5
Ở đây, tại iMAOnArray có 2 tham số shift, thực sự tớ cũng không phân biệt đc sự khác nhau của nó. MA_Shift và Price_Shift (là biến shift của bạn).
Thử đổi biến shift qua vị trí MA_Shift, biến shift = 0 xem.
 
Ở đây, tại iMAOnArray có 2 tham số shift, thực sự tớ cũng không phân biệt đc sự khác nhau của nó. MA_Shift và Price_Shift (là biến shift của bạn).
Thử đổi biến shift qua vị trí MA_Shift, biến shift = 0 xem.
cái shift cuối là biến i đó bạn, shift nó chạy từ đầu đến cuối mà, còn Ma_shift là muốn chart nó dịch chuyển qua trái hay phải thôi
 
Price_shift (biến I của bạn) nghĩa là dùng giá trước đó 1 nến để sử dụng tính MA.
Còn MA_Shift là tính MA theo nến hiện tại và dịch chuyển lên 1 nến.
 
Bạn thử thêm ArraySetAsSeries(RSi,true);
Đã thử rồi nhưng ko được nha bạn, mình add thử 2 cái MACD có sẵn trong MT4, thử di chuyển chart thì nó cũng bị lỗi như vậy, ko biết có phải là lỗi ko hay bị lỗi chỗ nào mà ko biết, kỳ quá
 
Đã thử rồi nhưng ko được nha bạn, mình add thử 2 cái MACD có sẵn trong MT4, thử di chuyển chart thì nó cũng bị lỗi như vậy, ko biết có phải là lỗi ko hay bị lỗi chỗ nào mà ko biết, kỳ quá
Cái indicator RSI bạn đã chọn fix range 0 ->100 chưa?
 
Cái này có thể là lỗi của MT4 khi chồng 2 indicator vào cùng 1 chart.
Chứ chạy 1 mình cái code trên thì có lỗi gì đâu.
 
Em không phải dân code nhưng theo em thì cái này không liên quan đến code, nó chỉ do khoảng biến thiên của 2 chỉ số không khớp được với nhau thôi: RSI biến thiên từ 0 -100, MA biến thiên theo biến động giá nên không có giới hạn, bác muốn code lấy giao điểm thì nên chọn các indi có khoảng biến thiên xác định giống như RSI nó mới đúng được.
Hoặc bác có thể tham khảo mã code của cái indi RSI - BB - MA thử xem có giải quyết được không.
 
Một cái nữa là khi kết hợp nhiều indi trong cùng một cửa sổ thì phải dùng chức năng fix range trên mọi indi giống như bác NamVu82 có nói ở trên đấy ạ.
 
Cái indicator RSI bạn đã chọn fix range 0 ->100 chưa?
Cái này có thể là lỗi của MT4 khi chồng 2 indicator vào cùng 1 chart.
Chứ chạy 1 mình cái code trên thì có lỗi gì đâu.
Một cái nữa là khi kết hợp nhiều indi trong cùng một cửa sổ thì phải dùng chức năng fix range trên mọi indi giống như bác NamVu82 có nói ở trên đấy ạ.
Mình làm được rồi bạn, như bạn ở trên nói ko được chồng 2 cái indicator vào mà phải viết vào cùng một file mq4 thì nó mới ko bị lỗi. cảm ơn mọi người.
 
bác check messenger với ạ
 

BÌNH LUẬN MỚI NHẤT

  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 48 Xem / 17 Trả lời
  • Berkeley trong Phân tích Forex - Vàng - Hàng hóa 17 Xem / 1 Trả lời
  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 956 Xem / 47 Trả lời
  • ngoi_sao_co_doc trong Phân tích Forex - Vàng - Hàng hóa 23,900 Xem / 80 Trả lời
  • forex_vn trong Phân tích Forex - Vàng - Hàng hóa 1,688 Xem / 13 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 352 Xem / 19 Trả lời
  • AdBlock Detected

    We get it, advertisements are annoying!

    Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

    Back
    Bên trên