Những series bài hay về phần mềm phân tích kỹ thuật AmiBroker
  • Thông báo


    Kết quả 1 đến 20 của 38

    Threaded View

    1. #34
      Ngày tham gia
      Aug 2010
      Bài viết
      648
      Được cám ơn 325 lần trong 218 bài gởi

      Mặc định Những series bài hay về phần mềm PTKT phân tích kỹ thuật AmiBroker

      Gửi anh em chỉ báo phân tích kỹ thuật trong AmiBroker khá hay

      Details:

      Formula name: 3TF Candlestick Bar Chart

      Author/Uploader: Jorgen Wallgren - jorgen.wallgren [at] gmail.com
      Date/Time added: 2010-09-19 21:12:01
      Origin: Got the basic idea from David's (dbwyatt_1999) 2 Timeframe chart code, using the PlotOHLC function with styleCloud, which was shared by him on the AmiBroker List.
      Keywords: Timeframe, candlestick
      Level: semi-advanced
      Flags: indicator

      DISCLAIMER: Most formulas present in AFL on-line library are submitted by the users and are provided here on an "as is" and "as available" basis. AmiBroker.com makes no representations or warranties of any kind to the contents or the operation of material presented here. We do not maintain nor provide technical support for 3rd party formulas.

      Description:

      Specially designed for use in day trading AND to save chart space. This chart will display 3 sets of candlestick bars. One for the time Interval set for your chart- for example 1 Minute. The higher timeframe candlestick bars are created by using gfx Low-level graphics and will display
      according to the parameters you set- for example 5 and 15 minutes. This code can be very much improved and made faster, but I provide it as it is.

      Formula:

      _SECTION_BEGIN("3 TF Candlestick Bar Chart");
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
      // 3 TIMEFRAMES CANDLESTICK CHART
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
      Version(5.21);
      SetChartOptions(2, chartShowDates);
      Title = Name();
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
      // PARAMETERS AND SETTINGS:
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
      ChartLum = Param("Chart Background Color Intensity", 0, 0, 1, 0.01);
      TFMinShort = Param("Short Timeframe (Minutes)", 1, 1, 60, 1);
      TFMinMedium = Param("Medium Timeframe (Minutes)", 5, 1, 60, 1);
      TFMinLong = Param("Long Timeframe (Minutes)", 15, 1, 60, 1);
      OnSTFBars = ParamToggle("Short TF Bars", "Off, On", 1);
      OnMTFBars = ParamToggle("Medium TF Bars", "Off, On", 1);
      OnLTFBars = ParamToggle("Long TF Bars", "Off, On", 1);
      BarLum1 = Param("Short TF Bar Color Intensity", 0, 0, 1, 0.01);
      BarLum2 = Param("Medium TF Bar Color Intensity", 0.70, 0, 1, 0.01);
      LTFLine = Param("Long TF Bar Line Thickness", 3, 0, 10, 1);
      BarLum3 = Param("Long TF Bar Color Intensity", 0.50, 0, 1, 0.01);

      // Bar Colors for the Short Timeframe candlestick bars:
      LineColor = ColorBlend(colorBlack, colorWhite, BarLum1);
      UpBarColor = ColorBlend(colorBrightGreen, colorWhite, BarLum1);
      DnBarColor = ColorBlend(colorRed, colorWhite, BarLum1);

      SetChartBkColor(ColorBlend(colorLightBlue, colorWhite, ChartLum));
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
      // FUNCTIONS:
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
      function GetVisibleBarCount()

      lvb = Status("lastvisiblebar");
      fvb = Status("firstvisiblebar");
      return Min( Lvb - fvb, BarCount - fvb );
      }

      function GfxConvertBarToPixelX( bar )

      lvb = Status("lastvisiblebar");
      fvb = Status("firstvisiblebar");
      pxchartleft = Status("pxchartleft");
      pxchartwidth = Status("pxchartwidth");
      return pxchartleft + bar * pxchartwidth / ( Lvb - fvb + 1 );
      }

      function GfxConvertValueToPixelY( Value )

      local Miny, Maxy, pxchartbottom, pxchartheight;
      Miny = Status("axisminy");
      Maxy = Status("axismaxy");
      pxchartbottom = Status("pxchartbottom");
      pxchartheight = Status("pxchartheight");
      return pxchartbottom - floor( 0.5 + ( Value - Miny ) * pxchartheight/ ( Maxy -
      Miny ) );
      }
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
      // MAIN PROGRAM:
      //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
      if(Interval() != TFMinShort * 60)

      Title = Title + "\n" + "\n" + "ALERT, ALERT, ALERT!!!" + "\n" + "Set the chart
      time interval to: " + NumToStr(TFMinShort, 1.0, 1) +
      " Minute(s) or change the Short Timeframe Parameter setting.";
      OnSTFBars = 0;
      OnMTFBars = 0;
      OnLTFBars = 0;
      SetChartBkColor(colorRose);
      }

      if(TFMinShort >= TFMinLong)

      Title = Title + "\n" + "\n" + "ALERT, ALERT, ALERT!!!" + "\n" + "The Long
      Timeframe setting must be longer than the Short Timeframe!";
      OnSTFBars = 0;
      OnLTFBars = 0;
      OnLTFBars = 0;
      SetChartBkColor(colorRose);
      }

      if(OnSTFBars)

      BarColor = IIf(Close > Open, UpBarColor, DnBarColor);
      SetBarFillColor(BarColor);
      Plot(Close, "", LineColor, styleCandle);
      }
      else
      Plot(Close, "", colorBlack, styleCandle | styleNoDraw);

      function PlotBars(TFMinLong, BarLum, Style)


      // Bar Colors For The Medium and Long Timeframe candlestick bars:
      TFLineColor = ColorBlend(colorBlack, colorWhite, BarLum - 0.1);
      TFUpBarColor = ColorBlend(colorBrightGreen, colorWhite, BarLum);
      TFDnBarColor = ColorBlend(colorRed, colorWhite, BarLum);

      TFSec = in1Minute * TFMinLong;
      TimeFrameSet(TFSec);
      TFOpen = Open;
      TFHigh = High;
      TFLow = Low;
      TFClose = Close;
      TFBarIndex = BarIndex();
      TFLastBarIndex = LastValue(BarIndex());
      TimeFrameRestore();

      TFOpen = TimeFrameExpand(TFOpen, TFSec, expandFirst);
      TFHigh = TimeFrameExpand(TFHigh, TFSec, expandFirst);
      TFLow = TimeFrameExpand(TFLow, TFSec, expandFirst);
      TFClose = TimeFrameExpand(TFClose, TFSec, expandFirst);
      TFBarIndex = TimeFrameExpand(TFBarIndex, TFSec, expandLast + 1);
      TFLastBarIndex = TimeFrameExpand(TFLastBarIndex, TFSec, expandLast + 1);

      CandleTop = Max(TFOpen, TFClose);
      CandleBottom = Min(TFOpen, TFClose);
      //================================================== ==========================
      // GFX LOW-LEVEL GRAPHICS SECTION.
      // DRAWING THE LONG TIMEFRAME CANDLESTICK BARS:
      //================================================== ==========================
      GfxSetOverlayMode(1);
      AllVisibleBars = GetVisibleBarCount();
      fvb = Status("firstvisiblebar");
      ChartWidth = GfxConvertBarToPixelX(AllVisibleBars );
      PixBar = ChartWidth / AllVisibleBars;
      Adjust = Pixbar * 0.35;
      TFMinutes = TFMinLong / TFMinShort;
      NewTFBar = IIf(TFBarIndex != Ref(TFBarIndex, -1), 1, 0);
      BarInd = BarIndex();
      TFLastBarIndex = LastValue(TFLastBarIndex);

      // DRAW BAR HISTORY AND THE CURRENT BAR:
      for(i = 0; i < AllVisibleBars; i++)

      x1 = GfxConvertBarToPixelX(i) * NewTFBar[i + fvb] - Adjust;
      if(BarInd[i + fvb] < TFLastBarIndex AND NewTFBar[i + fvb] == 1)

      Counter = 0;
      for(n = i + 1; NewTFBar[n + fvb] == 0 AND n + fvb < BarCount-1; n++)
      Counter++;
      x2 = GfxConvertBarToPixelX(i + Counter) * NewTFBar[i + fvb] + 1 + Adjust;
      }

      if(TFBarIndex[i + fvb] == TFLastBarIndex)
      x2 = GfxConvertBarToPixelX(i + TFMinutes - 1) * NewTFBar[i + fvb] + 1 +
      Adjust;

      y1 = GfxConvertValueToPixelY(CandleTop[i + fvb]);
      y2 = GfxConvertValueToPixelY(CandleBottom[i + fvb]);
      yH = GfxConvertValueToPixelY(TFHigh[i + fvb]);
      yL = GfxConvertValueToPixelY(TFLow[i + fvb]);

      // Candle Body:
      FillColor = IIf(TFOpen[i + fvb] < TFClose[i + fvb], TFUpBarColor,
      TFDnBarColor);
      if(Style == "Fill")

      GfxSelectPen(TFLineColor, 1);
      GfxSelectSolidBrush(FillColor);
      }
      else

      GfxSelectPen(FillColor, LTFLine);
      GfxSelectSolidBrush(ColorBlend(colorLightBlue, colorWhite, ChartLum));
      }

      if(y1 == y2){y1 = y1 - Adjust; y2 = y2 + Adjust;
      GfxSelectSolidBrush(TFLineColor);}
      if(x1 > 0)
      GfxRectangle( x1, y1, x2, y2);

      // Candle High and Low:
      GfxSelectPen(TFLineColor, 2);
      GfxMoveTo(x2+(x1-x2)/2, y1);
      GfxLineTo(x2+(x1-x2)/2, yH);
      GfxMoveTo(x2+(x1-x2)/2, y2);
      GfxLineTo(x2+(x1-x2)/2, yL);
      RequestTimedRefresh(0);
      }
      }
      }

      if(OnLTFBars)
      PlotBars(TFMinLong, BarLum3, "Line");
      if(OnMTFBars)
      PlotBars(TFMinMedium, BarLum2, "Fill");
      _SECTION_END();

    2. Những thành viên sau đã cám ơn :
      tigeran (27-08-2013)

    Thông tin của chủ đề

    Users Browsing this Thread

    Có 4 thành viên đang xem chủ đề này. (0 thành viên và 4 khách vãng lai)

       

    Similar Threads

    1. Một bài phân tích hay, có lý và khách quan
      By Brainstorm in forum Thảo luận Tình hình
      Trả lời: 0
      Bài viết cuối: 17-06-2012, 11:41 PM
    2. Phần mềm phân tích kỹ thuật
      By waterloo1815 in forum CLB Chứng khoán
      Trả lời: 2
      Bài viết cuối: 28-10-2009, 11:32 PM

    Bookmarks

    Quyền viết bài

    • Bạn Không thể gửi Chủ đề mới
    • Bạn Không thể Gửi trả lời
    • Bạn Không thể Gửi file đính kèm
    • Bạn Không thể Sửa bài viết của mình