Nhờ các bạn cao thủ sửa giúp đoạn code sau

Thảo luận trong 'Bàn luận về Amibroker, Metastock, Metatrader 4' bắt đầu bởi Nam, 3/4/24.

Lượt xem : 856

  1. Nam

    Nam Member

    Tham gia ngày:
    10/7/21
    Bài viết:
    23
    Đã được thích:
    5
    Giới tính:
    Nam
    // Reversal and Breakout Signals [AlgoAlpha] AFL Code
    // © AlgoAlpha

    SetChartOptions(0, chartShowArrows|chartShowDates);
    SetChartBkColor(ParamColor("ChartBgColor", colorBlack));
    SetChartBkGradientFill(ParamColor("Upper ChartBgColor", colorBlack), ParamColor("Lower ChartBgColor", colorBlack));

    period = Param("Indicator Period", 20, 1, 100, 1);
    vStrengthPeriod = Param("Volume Strength Period", 20, 1, 100, 1);
    strongVolThreshold = Param("Strong Volume Threshold", 2, 0, 100, 0.1);
    trendColor = ParamToggle("Color Candles During Trends", "Off|On", 1);
    bullishColor = ParamColor("Bullish Color", colorBrightGreen);
    bearishColor = ParamColor("Bearish Color", colorRed);
    breakoutColor = ParamColor("Breakout Color", colorYellow);

    HMA = MA(C, period);
    RVol = V/MA(V, vStrengthPeriod);
    strongVol = RVol > strongVolThreshold;

    SH = WMA(H, period);
    SL = WMA(L, period);
    HH = HHV(SH, period);
    LL = LLV(SL, period);

    candleDir = IIf(C > O, 1, -1);

    bullishRej = Ref(LL < LL[1] AND C > LL[1], -1);
    bearishRej = Ref(HH > HH[1] AND C < HH[1], -1);

    bullishBreakout = Ref(C > HH[1] AND O < HH[1], -1);
    bearishBreakout = Ref(C < LL[1] AND O > LL[1], -1);

    state = 0;
    if (bullishBreakout) state = 1;
    if (bearishBreakout) state = -1;
    if (Cross(L, LL) AND state == -1 OR Cross(HH, H) AND state == 1) state = 0;

    PlotShapes(IIf(bullishRej AND state != -1, shapeUpTriangle, shapeNone), colorTransparent, 0, L*0.9995);
    PlotShapes(IIf(bearishRej AND state != 1, shapeDownTriangle, shapeNone), colorTransparent, 0, H*1.0005);
    PlotShapes(IIf(bullishBreakout, shapeSmallDiamond, shapeNone), colorTransparent, 0, L*0.999);
    PlotShapes(IIf(bearishBreakout, shapeSmallDiamond, shapeNone), colorTransparent, 0, H*1.001);

    Plot(HH, "", colorRed, styleStaircase);
    Plot(LL, "", colorGreen, styleStaircase);
    Plot(HMA, "Trend Tracker", IIf(state == 1, bullishColor, IIf(state == -1, bearishColor, colorWhite)), styleLine);

    candleColor = IIf(trendColor, IIf(state == 1, bullishColor, IIf(state == -1, bearishColor, colorWhite)), colorWhite);
    PlotOHLC(O, H, L, C, "", candleColor, candleColor, styleCandle);

    // Alert Conditions
    AlertIf(bullishRej AND state != -1, "", "Bullish Reversal", 1);
    AlertIf(bearishRej AND state != 1, "", "Bearish Reversal", 1);
    AlertIf(bullishBreakout, "", "Bullish Breakout", 1);
    AlertIf(bearishBreakout, "", "Bearish Breakout", 1);
     
    Quan tâm nhiều
    Gạo tặng Tết
    Gạo tặng Tết bởi Phương nam foods, 1/12/24 lúc 23:49
    Gạo biếu tết
    Gạo biếu tết bởi Phương nam foods, 2/12/24 lúc 15:27
    Bài viết mới
    Gạo biếu tết
    Gạo biếu tết bởi Phương nam foods, 2/12/24 lúc 15:27
    Gạo tặng Tết
    Gạo tặng Tết bởi Phương nam foods, 1/12/24 lúc 23:49
  2. Đang tải...

    Bài viết tương tự Diễn đàn Date
    nhờ các cao thủ giúp đỡ code amibroker về volume Bàn luận về Amibroker, Metastock, Metatrader 4 22/10/24
    Nhờ các bác cao thủ sửa giúp e đoạn code sau Bàn luận về Amibroker, Metastock, Metatrader 4 24/6/24
    Nhờ các bác chỉ giúp e code adx ạ Bàn luận về Amibroker, Metastock, Metatrader 4 2/9/23
    Nhờ các bác sửa giúp bộ siêu lọc Ichimoku Bàn luận về Amibroker, Metastock, Metatrader 4 12/8/23
    Nhờ các bác code giúp em với điều kiện sau với ạ Bàn luận về Amibroker, Metastock, Metatrader 4 8/6/23

  3. ngxlamdntd

    ngxlamdntd Well-Known Member

    Tham gia ngày:
    27/4/22
    Bài viết:
    238
    Đã được thích:
    763
    Giới tính:
    Nam
    chưa hiểu bạn muốn sửa nội dung gì
     
  4. Nam

    Nam Member

    Tham gia ngày:
    10/7/21
    Bài viết:
    23
    Đã được thích:
    5
    Giới tính:
    Nam
    Mình muốn sửa đoạn code trên để có thể chạy trên amiboker 6, Có bộ lọc luôn ạ. Bạn xem có thể chỉnh sửa giúp mình được k?
     
  5. Pham Dinh Phong

    Pham Dinh Phong New Member

    Tham gia ngày:
    19/5/24
    Bài viết:
    1
    Đã được thích:
    0
    Giới tính:
    Nam
    Chào anh Nam , anh Nam có code Banker Rythm cho mình xin nhé
     
  6. Đoàn Đức Anh

    Đoàn Đức Anh New Member

    Tham gia ngày:
    26/8/21
    Bài viết:
    3
    Đã được thích:
    0
    Giới tính:
    Nam
    Đoạn code trên mình đã sửa cho chạy được chart, nhưng phần bộ lọc thì vẫn chưa chạy ra được kết quả.

    _SECTION_BEGIN("Test code online 1");
    SetChartOptions(0, chartShowArrows | chartShowDates);
    SetChartBkColor(ParamColor("ChartBgColor", colorBlack));
    SetChartBkGradientFill(ParamColor("Upper ChartBgColor", colorBlack), ParamColor("Lower ChartBgColor", colorBlack));

    period = Param("Indicator Period", 20, 1, 100, 1);
    vStrengthPeriod = Param("Volume Strength Period", 20, 1, 100, 1);
    strongVolThreshold = Param("Strong Volume Threshold", 2, 0, 100, 0.1);
    trendColor = ParamToggle("Color Candles During Trends", "Off|On", 1);
    bullishColor = ParamColor("Bullish Color", colorBrightGreen);
    bearishColor = ParamColor("Bearish Color", colorRed);
    breakoutColor = ParamColor("Breakout Color", colorYellow);

    HMMA = MA(C, period);
    RVol = V / MA(V, vStrengthPeriod);
    strongVol = RVol > strongVolThreshold;

    SH = WMA(H, period);
    SL = WMA(L, period);
    HH = HHV(SH, period);
    LL = LLV(SL, period);

    candleDir = IIf(C > O, 1, -1);

    bullishRej = Ref(LL < LL[1] AND C > LL[1], -1);
    bearishRej = Ref(HH > HH[1] AND C < HH[1], -1);

    bullishBreakout = Ref(C > HH[1] AND O < HH[1], -1);
    bearishBreakout = Ref(C < LL[1] AND O > LL[1], -1);

    // Initialize state array
    state = Null;
    state[0] = 0; // Initial state

    for (i = 1; i < BarCount; i++)
    {
    if (bullishBreakout)
    state = 1;
    else if (bearishBreakout)
    state = -1;
    else if ((L < LL AND L[i-1] >= LL[i-1] AND state[i-1] == -1) OR
    (H > HH AND H[i-1] <= HH[i-1] AND state[i-1] == 1))
    state = 0;
    else
    state = state[i-1];
    }

    // Set bar colors based on trend state
    if (trendColor)
    {
    SetBarFillColor(IIf(state == 1, bullishColor, IIf(state == -1, bearishColor, colorWhite)));
    }

    // Plot shapes for various signals
    PlotShapes(IIf(bullishRej AND state != -1, shapeUpTriangle, shapeNone), colorYellow, 0, L * 0.9995);
    PlotShapes(IIf(bearishRej AND state != 1, shapeDownTriangle, shapeNone), colorYellow, 0, H * 1.0005);
    PlotShapes(IIf(bullishBreakout, shapeUpArrow, shapeNone), colorYellow, 0, L * 0.999);
    PlotShapes(IIf(bearishBreakout, shapeDownArrow, shapeNone), colorYellow, 0, H * 1.001);

    // Plot high and low indicators
    Plot(HH, "High", colorRed, styleStaircase);
    Plot(LL, "Low", colorGreen, styleStaircase);

    // Plot the trend tracker line
    Plot(HMMA, "Trend Tracker", IIf(state == 1, bullishColor, IIf(state == -1, bearishColor, colorWhite)), styleLine);

    // Plot the candlesticks
    PlotOHLC(O, H, L, C, "", colorDefault, colorDefault, styleCandle);

    // Alert Conditions
    AlertIf(bullishRej AND state != -1, "", "Bullish Reversal", 1);
    AlertIf(bearishRej AND state != 1, "", "Bearish Reversal", 1);
    AlertIf(bullishBreakout, "", "Bullish Breakout", 1);
    AlertIf(bearishBreakout, "", "Bearish Breakout", 1);
    _SECTION_END();
     
  7. C.Luận

    C.Luận Moderator

    Tham gia ngày:
    8/5/24
    Bài viết:
    110
    Đã được thích:
    115
    Giới tính:
    Nam
    Nghề nghiệp:
    Tư vấn VPS
    //Đoạn code này không có bộ lọc, nó chỉ là một cái Trend Tracker gì đó thôi bạn

    _SECTION_BEGIN("Test code online 1");
    SetChartOptions(0, chartShowArrows | chartShowDates);
    SetChartBkColor(ParamColor("ChartBgColor", colorBlack));
    SetChartBkGradientFill(ParamColor("Upper ChartBgColor", colorBlack), ParamColor("Lower ChartBgColor", colorBlack));
    period = Param("Indicator Period", 20, 1, 100, 1);
    vStrengthPeriod = Param("Volume Strength Period", 20, 1, 100, 1);
    strongVolThreshold = Param("Strong Volume Threshold", 2, 0, 100, 0.1);
    trendColor = ParamToggle("Color Candles During Trends", "Off|On", 1);
    bullishColor = ParamColor("Bullish Color", colorBrightGreen);
    bearishColor = ParamColor("Bearish Color", colorRed);
    breakoutColor = ParamColor("Breakout Color", colorYellow);
    HMMA = MA(C, period);
    RVol = V / MA(V, vStrengthPeriod);
    strongVol = RVol > strongVolThreshold;
    SH = WMA(H, period);
    SL = WMA(L, period);
    HH = HHV(SH, period);
    LL = LLV(SL, period);
    candleDir = IIf(C > O, 1, -1);
    bullishRej = Ref(LL < LL[1] AND C > LL[1], -1);
    bearishRej = Ref(HH > HH[1] AND C < HH[1], -1);
    bullishBreakout = Ref(C > HH[1] AND O < HH[1], -1);
    bearishBreakout = Ref(C < LL[1] AND O > LL[1], -1);
    // Initialize state array
    state = Null;
    state[0] = 0; // Initial state
    for (i = 1; i < BarCount; i++)
    {
    IIf(bullishBreakout, state = 1,IIf(bearishBreakout,state=-1,IIf((L < LL AND L[i-1] >= LL[i-1] AND state[i-1] == -1) OR
    (H > HH AND H[i-1] <= HH[i-1] AND state[i-1] == 1),0,state=state[i-1])));
    }
    // Set bar colors based on trend state
    IIf(trendColor,SetBarFillColor(IIf(state == 1, bullishColor, IIf(state == -1, bearishColor, colorWhite))),colorDefault);
    // Plot shapes for various signals
    PlotShapes(IIf(bullishRej AND state != -1, shapeUpTriangle, shapeNone), colorYellow, 0, L * 0.9995);
    PlotShapes(IIf(bearishRej AND state != 1, shapeDownTriangle, shapeNone), colorYellow, 0, H * 1.0005);
    PlotShapes(IIf(bullishBreakout, shapeUpArrow, shapeNone), colorYellow, 0, L * 0.999);
    PlotShapes(IIf(bearishBreakout, shapeDownArrow, shapeNone), colorYellow, 0, H * 1.001);
    // Plot high and low indicators
    Plot(HH, "High", colorRed, styleStaircase);
    Plot(LL, "Low", colorGreen, styleStaircase);
    // Plot the trend tracker line
    Plot(HMMA, "Trend Tracker", IIf(state == 1, bullishColor, IIf(state == -1, bearishColor, colorWhite)), styleLine);
    // Plot the candlesticks
    PlotOHLC(O, H, L, C, "", colorDefault, colorDefault, styleCandle);
    // Alert Conditions
    AlertIf(bullishRej AND state != -1, "", "Bullish Reversal", 1);
    AlertIf(bearishRej AND state != 1, "", "Bearish Reversal", 1);
    AlertIf(bullishBreakout, "", "Bullish Breakout", 1);
    AlertIf(bearishBreakout, "", "Bearish Breakout", 1);
    _SECTION_END();


    upload_2024-6-20_2-37-23.png
     
    Học thích bài này.
  8. amibro

    amibro Member

    Tham gia ngày:
    25/8/21
    Bài viết:
    7
    Đã được thích:
    14
    Giới tính:
    Nam
    Các b chỉ cần thêm tiêu chí lọc vào là được mà.
    Ví dụ ở đây mình cho lọc theo tiêu chí "Bullish Breakout"
    Tạm đặt tên là "Bò húc" :D
    .................
    m=bullishBreakout;

    Filter = m;

    AddColumn(m,"Bò húc",1,IIf(C>Ref(C,-1),colorGreen,colorRed));
    AddColumn(C,"Close",1,IIf(C>Ref(C,-1),colorGreen,colorRed));
    AddColumn(V,"Volume",1,IIf(V>Ref(V,-1),colorGreen,colorRed));

    _SECTION_END();

    Chạy thử ra:
    upload_2024-6-24_8-18-13.png
     
    C.Luận thích bài này.

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

Tags:

Chia sẻ trang này