Code bị lỗi Error 6 khi sử dụng hàm IF. và xin cách khắc phục

Thảo luận trong 'Bàn luận về Amibroker, Metastock, Metatrader 4' bắt đầu bởi Phan Toàn, 26/4/23.

Lượt xem : 796

  1. Phan Toàn

    Phan Toàn New Member

    Tham gia ngày:
    17/8/21
    Bài viết:
    2
    Đã được thích:
    0
    Giới tính:
    Nam
    Em có tập viết 1 đoạn code nhưng bị lỗi sau:
    Error 6. Condition in IF, WHILE, FOR statements has to be Numeric or Boolean type. You can not use array here, please use [] (array subscript operator) to access array elements
    Xin các cao nhân chỉ bảo và cách khắc phục. Em xin cảm ơn.
    _SECTION_BEGIN("Tiêu chí 1");
    chiso1 = (C - Ref(C,-1))/Ref(C,-1)*100;
    chiso1_avg = MA(chiso1, 10);
    score1 = IIf(chiso1_avg >= -0.5 AND chiso1_avg <= 0.5, 2.5, 0);
    _SECTION_END();

    _SECTION_BEGIN("Tiêu chí 2");
    vol_30_avg = MA(V, 30);
    score2 = IIf(V > vol_30_avg, 2.5, 0);
    _SECTION_END();

    _SECTION_BEGIN("Tiêu chí 3");
    ma200 = MA(C, 200);
    score3 = IIf(C > ma200, 1.2, 0);
    _SECTION_END();

    _SECTION_BEGIN("Tiêu chí 4");
    rsi_prev = RSI(14);
    mfi_prev = MFI(14);
    rsi_mfi_cond = (rsi_prev < 60 AND mfi_prev < 60) AND (RSI(14) > 60 OR MFI(14) > 60);
    score4 = IIf(rsi_mfi_cond, 1.2, 0);
    _SECTION_END();

    _SECTION_BEGIN("Tiêu chí 5");
    macd_prev = MACD();
    score5 = IIf(macd_prev < 0 OR (macd_prev >= 0 AND MACD() < macd_prev), 0.7, 0);
    _SECTION_END();

    _SECTION_BEGIN("Tiêu chí 6");
    score6 = IIf(C > MA(C, 20), 0.7, 0);
    _SECTION_END();

    _SECTION_BEGIN("Tiêu chí 7");

    tsi_prev = MA(MA(abs(close - Ref(Close, -10)) / ATR(10), 10), 100);
    tsi_curr = MA(MA(abs(close - Ref(Close, -14)) / ATR(10), 10), 100);

    tsi_cond = (tsi_prev < 0 AND tsi_curr > 0) OR (tsi_prev > 0 AND tsi_curr < tsi_prev);

    score7 = IIf(tsi_cond, 0.7, 0);

    _SECTION_END();

    total_score = score1 + score2 + score3 + score4 + score5 + score6 + score7;


    score3_positive = score3 > 0;
    score1_positive = score1 > 0;
    score4_zero = score4 == 0;
    score5_zero = score5 == 0;
    chiso1_avg_gt_half = chiso1_avg > 0.5;
    chiso1_avg_lt_neg_half = chiso1_avg < -0.5;
    is_buy = false;
    is_sell = false;


    if(total_score > 8.1)
    is_buy = true;

    if(total_score < 8.1)
    is_buy = False;

    if(total_score == 8.1) {
    if(score3_positive) {
    is_buy = true;
    } else if(score1_positive && (chiso1_avg_gt_half || chiso1_avg_lt_neg_half)) {
    is_buy = true;
    } else if(score4_zero && score5_zero) {
    is_buy = true;
    }
    } else if(BarIndex() >= LastValue(BarsSince(H > HHV(H, 63)), 1) - 63) {
    is_sell = true;
    }

    if(is_buy) {
    Buy;
    } else if(is_sell) {
    Sell;
    }

    upload_2023-4-26_12-9-33.png
     
  2. Đang tải...

    Bài viết tương tự Diễn đàn Date
    Code Đường Trung bình thông minh tự chuyển đổi Bàn luận về Amibroker, Metastock, Metatrader 4 16/11/24
    Code phân biệt Tích Lũy/Phân Phối theo Qui Luật Nỗ Lực-Kết Quả Bàn luận về Amibroker, Metastock, Metatrader 4 14/7/24
    Code KMACD - Biến thể bám xu hướng mượt hơn Macd thông dụng Bàn luận về Amibroker, Metastock, Metatrader 4 10/7/24
    Món quà Giỗ Tổ Hùng Vương 2024 bộ code lọc: Bí mật dòng tiền Bàn luận về Amibroker, Metastock, Metatrader 4 18/4/24
    Nhờ anh Bình với anh Khánh giúp em code này, điểm mua đơn giản mà em thấy chính xác rất cao Bàn luận về Amibroker, Metastock, Metatrader 4 25/3/22

  3. Phan Toàn

    Phan Toàn New Member

    Tham gia ngày:
    17/8/21
    Bài viết:
    2
    Đã được thích:
    0
    Giới tính:
    Nam

Lượt bình luận : 1

Chia sẻ trang này