Quay trở về thời điểm xa xưa những năm 1920-1930, có một thiên tài về kế toán chuyên nghiệp tên Ralph Nelson Elliott.
Các bạn có thể tham khảo thêm các code mới và các cài đặt tại đây: https://vfin.vn/cach-cai-them-code-vao-amibroker/
Bằng cách phân tích 75 năm các dữ liệu của thị trường chứng khoán, Elliott đã khám phá ra rằng thị trường chứng khoán có vẻ biến động một cách hỗn loạn, nhưng thực sự không phải vậy.
Khi ông 66 tuổi, cuối cùng ông đã thu được đủ bằng chứng (và sự tự tin) để chia sẻ khám phá của ông với thế giới. Ông đã xuất bản lý thuyết của ông với tiêu đề “The Wave Principle”.
Theo ông, thị trường được giao dịch trong những chu kỳ lặp đi lặp lại, do những cảm xúc của nhà đầu tư bị ảnh hưởng từ các yếu tố bên ngoài (CNBC, Bloomberg, ESPN) hay tâm lý chung của phần lớn nhà đầu tư tại thời điểm đó.
Elliott giải thích rằng đường cong của giá đi lên và xuống do tâm lý của một lượng lớn nhà đầu tư luôn xuất hiện trong các mô hình được lặp đi lặp lại. Và ông gọi các thay đổi lên xuống này là sóng. Ông tin rằng, nếu bạn có thể nhận biết đúng mô hình giá được lặp đi lặp lại, bạn có thể dự đoán những biến động tiếp theo của giá.
Điều này làm Elliott lôi cuốn các nhà giao dịch. Nó cho họ cách để xác định rõ ràng nơi giá có nhiều khả năng đảo chiều. Nói một cách khác, Elliott tạo ra một hệ thống mà ở đó các nhà giao dịch có thể nhận biết đỉnh hoặc đáy của giá.
Và ông đã đặt tên cho phát minh của mình là: Lý thuyết sóng Elliott
Nhưng trước khi chúng ta đi sâu vào sóng Elliott, bạn cần hiểu Fractals là gì.
==================================================================
_SECTION_BEGIN("Price");
weekdays= WriteIf(DayOfWeek() == 1, "Thu Hai", WriteIf(DayOfWeek() == 2, "Thu Ba", WriteIf(DayOfWeek() == 3, "Thu Tu", WriteIf(DayOfWeek() == 4, "Thu Nam", WriteIf(DayOfWeek() == 5, "Thu Sau", " ")))));
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = EncodeColor(colorYellow) + StrFormat("{{NAME}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) + EncodeColor(colorWhite) + StrFormat("_Open %g, Hi %g, Lo %g, Close %g (%.1f%%)", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) + EncodeColor(colorWhite) + "_Volume " + WriteVal(V,1.0) + EncodeColor(colorYellow) + " _ " + WEEKDAYS + " " + Date() + "\n" + EncodeColor(colorWhite) + FullName());
;
UpClose = Close - Ref(Close,-1);
Color = IIf(UpClose > 0, colorBrightGreen, colorRed);
PlotOHLC(Open,High,Low,Close,"", Color, styleCandle);
PlotOHLC(Open,High,Low,Close, "Close", ParamColor("Color", styleCandle), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
function PlotGradientArea( array, caption, ColorTop, ColorBottom )
{
bkclr = GetChartBkColor();
HH = HighestVisibleValue( array );
if( NOT IsNull( hh ) ) SetChartBkGradientFill( ColorTop, ColorBottom, bkclr, Null, HH );
Plot( array, Caption, ColorBlend( ColorBottom, colorBlack ) );
PlotOHLC( HH, HH, array, HH, "", bkclr, styleNoLabel | styleNoTitle | styleCloud, Null, Null, 0, -10 );
}
_SECTION_BEGIN("Zig-zag with buy and sell signals-auto trend lines");
//////////////////////////////////////////////////////////////////////////////////////////
//z_ZigZagValid
// ******** CHARTING
per=Param ("per1", 1,0.1,50,0.10);
PercentChange = per;
mystartbar = SelectedValue(BarIndex()); // FOR GRAPHING
mystartbardate = LastValue(ValueWhen(mystartbar == BarIndex(), DateNum(),1));
InitialValue = LastValue(ValueWhen(mystartbardate == DateNum(), C , 1 ) ) ;
Temp1 = IIf(BarIndex() >= mystartbar, InitialValue, Null) ;
Plot(Temp1, " ", colorBlack,styleLine);
Plot((1+(LastValue(PercentChange)/100))*(Temp1), " ", colorGreen, styleLine) ;
Plot((1-(LastValue(PercentChange)/100))*(Temp1), " ", colorRed, styleLine) ;
ZZ = Zig(C,LastValue(PercentChange)) ;
PivotLow = Ref(IIf(Ref(ROC(ZZ,1),-1) < 0 AND ROC(ZZ,1) > 0, 1, Null),1);
PivotHigh = Ref(IIf(Ref(ROC(ZZ,1),-1) > 0 AND ROC(ZZ,1) < 0, 1, Null),1);
Buy_Valid = IIf(C>(1+(LastValue(PercentChange)/100))*(ValueWhen(PivotLow, C,
1))
AND ROC(ZZ,1) > 0,1,0);
Sell_Valid = IIf(C<(1-(LastValue(PercentChange)/100))*(ValueWhen(PivotHigh, C,
1))
AND ROC(ZZ,1) < 0,1,0);
Buy_Valid = ExRem(Buy_Valid,Sell_Valid);
Sell_Valid = ExRem(Sell_Valid,Buy_Valid);
PlotShapes( shapeUpArrow*Buy_Valid, colorGreen,0, L, -20);
PlotShapes( shapeDownArrow*Sell_Valid, colorRed,0,H, -20) ;
BarColors =
IIf(BarsSince(Buy_Valid) < BarsSince(Sell_Valid)
AND BarsSince(Buy_Valid)!=0, colorGreen,
IIf(BarsSince(Sell_Valid) < BarsSince(Buy_Valid)
AND BarsSince(Sell_Valid)!=0, colorRed, colorBlue));
Plot(C, " ", BarColors, styleCandle ) ;
Plot(ZZ," ", colorLightGrey,styleLine|styleThick);
Plot(ZZ," ", BarColors,styleDots|styleNoLine);
Title = Name() + " " + Date() + WriteIf(PivotLow, " Up Pivot
","")+WriteIf(PivotHigh," Down Pivot ","")+ WriteIf(Buy_Valid, " Buy Point ",
"") + WriteIf(Sell_Valid, " Sell Point ", "") ;
AlertIf( Buy_Valid, "SOUND C:\\Windows\\Media\\tada.wav", "Audio alert", 2 );
AlertIf( Sell_Valid,"SOUND C:\\Windows\\Media\\Windows XP Critical Stop.wav", "Audio alert", 2 );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
x = Cum(1);
s1=C;
s11=C;
pS = TroughBars( s1, per, 1 ) == 0;
endt= SelectedValue(ValueWhen( pS, x, 1 ));
startt=SelectedValue(ValueWhen( pS, x, 2 ));
dtS =endt-startt;
endS = SelectedValue(ValueWhen( pS, s1, 1 ) );
startS = SelectedValue( ValueWhen( pS, s1, 2 ));
aS = (endS-startS)/dtS;
bS = endS;
trendlineS = aS * ( x -endt ) + bS;
g3= IIf(x>startt-10,trendlineS,-1e10);
Plot(g3,"",colorRed,styleThick);
pR = PeakBars( s11, per, 1 ) == 0;
endt1= SelectedValue(ValueWhen( pR, x, 1 ));
startt1=SelectedValue(ValueWhen( pR, x, 2 ));
dtR =endt1-startt1;
endR = SelectedValue(ValueWhen( pR, s11, 1 ) );
startR = SelectedValue( ValueWhen( pR, s11, 2 ));
aR = (endR-startR)/dtR;
bR = endR;
trendlineR = aR * ( x -endt1 ) + bR;
g4= IIf(x>startT1-10,trendlineR,-1e10);
Plot(g4,"",colorGreen,styleThick);
//////////////////////////////////////////////////////////////////////////////////////
_SECTION_END();
weekdays= WriteIf(DayOfWeek() == 1, "Thu Hai", WriteIf(DayOfWeek() == 2, "Thu Ba", WriteIf(DayOfWeek() == 3, "Thu Tu", WriteIf(DayOfWeek() == 4, "Thu Nam", WriteIf(DayOfWeek() == 5, "Thu Sau", " ")))));
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = EncodeColor(colorYellow) + StrFormat("{{NAME}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) + EncodeColor(colorWhite) + StrFormat("_Open %g, Hi %g, Lo %g, Close %g (%.1f%%)", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) + EncodeColor(colorWhite) + "_Volume " + WriteVal(V,1.0) + EncodeColor(colorYellow) + " _ " + WEEKDAYS + " " + Date() + "\n" + EncodeColor(colorWhite) + FullName());
;
UpClose = Close - Ref(Close,-1);
Color = IIf(UpClose > 0, colorBrightGreen, colorRed);
PlotOHLC(Open,High,Low,Close,"", Color, styleCandle);
PlotOHLC(Open,High,Low,Close, "Close", ParamColor("Color", styleCandle), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
function PlotGradientArea( array, caption, ColorTop, ColorBottom )
{
bkclr = GetChartBkColor();
HH = HighestVisibleValue( array );
if( NOT IsNull( hh ) ) SetChartBkGradientFill( ColorTop, ColorBottom, bkclr, Null, HH );
Plot( array, Caption, ColorBlend( ColorBottom, colorBlack ) );
PlotOHLC( HH, HH, array, HH, "", bkclr, styleNoLabel | styleNoTitle | styleCloud, Null, Null, 0, -10 );
}
_SECTION_BEGIN("Zig-zag with buy and sell signals-auto trend lines");
//////////////////////////////////////////////////////////////////////////////////////////
//z_ZigZagValid
// ******** CHARTING
per=Param ("per1", 1,0.1,50,0.10);
PercentChange = per;
mystartbar = SelectedValue(BarIndex()); // FOR GRAPHING
mystartbardate = LastValue(ValueWhen(mystartbar == BarIndex(), DateNum(),1));
InitialValue = LastValue(ValueWhen(mystartbardate == DateNum(), C , 1 ) ) ;
Temp1 = IIf(BarIndex() >= mystartbar, InitialValue, Null) ;
Plot(Temp1, " ", colorBlack,styleLine);
Plot((1+(LastValue(PercentChange)/100))*(Temp1), " ", colorGreen, styleLine) ;
Plot((1-(LastValue(PercentChange)/100))*(Temp1), " ", colorRed, styleLine) ;
ZZ = Zig(C,LastValue(PercentChange)) ;
PivotLow = Ref(IIf(Ref(ROC(ZZ,1),-1) < 0 AND ROC(ZZ,1) > 0, 1, Null),1);
PivotHigh = Ref(IIf(Ref(ROC(ZZ,1),-1) > 0 AND ROC(ZZ,1) < 0, 1, Null),1);
Buy_Valid = IIf(C>(1+(LastValue(PercentChange)/100))*(ValueWhen(PivotLow, C,
1))
AND ROC(ZZ,1) > 0,1,0);
Sell_Valid = IIf(C<(1-(LastValue(PercentChange)/100))*(ValueWhen(PivotHigh, C,
1))
AND ROC(ZZ,1) < 0,1,0);
Buy_Valid = ExRem(Buy_Valid,Sell_Valid);
Sell_Valid = ExRem(Sell_Valid,Buy_Valid);
PlotShapes( shapeUpArrow*Buy_Valid, colorGreen,0, L, -20);
PlotShapes( shapeDownArrow*Sell_Valid, colorRed,0,H, -20) ;
BarColors =
IIf(BarsSince(Buy_Valid) < BarsSince(Sell_Valid)
AND BarsSince(Buy_Valid)!=0, colorGreen,
IIf(BarsSince(Sell_Valid) < BarsSince(Buy_Valid)
AND BarsSince(Sell_Valid)!=0, colorRed, colorBlue));
Plot(C, " ", BarColors, styleCandle ) ;
Plot(ZZ," ", colorLightGrey,styleLine|styleThick);
Plot(ZZ," ", BarColors,styleDots|styleNoLine);
Title = Name() + " " + Date() + WriteIf(PivotLow, " Up Pivot
","")+WriteIf(PivotHigh," Down Pivot ","")+ WriteIf(Buy_Valid, " Buy Point ",
"") + WriteIf(Sell_Valid, " Sell Point ", "") ;
AlertIf( Buy_Valid, "SOUND C:\\Windows\\Media\\tada.wav", "Audio alert", 2 );
AlertIf( Sell_Valid,"SOUND C:\\Windows\\Media\\Windows XP Critical Stop.wav", "Audio alert", 2 );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
x = Cum(1);
s1=C;
s11=C;
pS = TroughBars( s1, per, 1 ) == 0;
endt= SelectedValue(ValueWhen( pS, x, 1 ));
startt=SelectedValue(ValueWhen( pS, x, 2 ));
dtS =endt-startt;
endS = SelectedValue(ValueWhen( pS, s1, 1 ) );
startS = SelectedValue( ValueWhen( pS, s1, 2 ));
aS = (endS-startS)/dtS;
bS = endS;
trendlineS = aS * ( x -endt ) + bS;
g3= IIf(x>startt-10,trendlineS,-1e10);
Plot(g3,"",colorRed,styleThick);
pR = PeakBars( s11, per, 1 ) == 0;
endt1= SelectedValue(ValueWhen( pR, x, 1 ));
startt1=SelectedValue(ValueWhen( pR, x, 2 ));
dtR =endt1-startt1;
endR = SelectedValue(ValueWhen( pR, s11, 1 ) );
startR = SelectedValue( ValueWhen( pR, s11, 2 ));
aR = (endR-startR)/dtR;
bR = endR;
trendlineR = aR * ( x -endt1 ) + bR;
g4= IIf(x>startT1-10,trendlineR,-1e10);
Plot(g4,"",colorGreen,styleThick);
//////////////////////////////////////////////////////////////////////////////////////
_SECTION_END();
=================================================================================
(EWO)
a) Ending Diagonal Triangle
b) Leading Diagonal Triangle
Cũng như mô hình sóng Ending Diagonal Triangle thì mô hình sóng Leading Diagonal Triangle là hiện tượng tương đối hiếm đối với các cấp độ sóng lớn mà thường xuất hiện ở các cấp độ sóng thấp hơn trên các đồ thị giá trong ngày (intraday). Thường thì theo sau mô hình Diagonal Triangle là sự thay đổi mạnh về xu hướng thị trường.
Vị trí xuất hiện: Mô hình Leading Diagonal Triangle xuất hiện ở các sóng 1 và A.
Cấu trúc sóng bên trong: Mô hình Leading Diagonal Triangle bao gồm 5 sóng có cấu trúc sóng bên trong theo dạng 5-3-5-3-5.
Nếu độ dài sóng 3 <1 .62="" 0.62="" 1-3="" 1.62="" 1="" 3="" 5="sóng" a="" b="" c="" ho="" i="" kh="" khi="" l="" m="" n="" ng="" nh="" r="" s="" span="" t="" th="" u="">1><1 .62="" 0.62="" 1-3="" 1.62="" 1="" 3="" 5="sóng" a="" b="" c="" ho="" i="" kh="" khi="" l="" m="" n="" ng="" nh="" r="" s="" span="" t="" th="" u="">1>
(EWO)
_SECTION_BEGIN("BACK COLR");
_SECTION_BEGIN("PRASAD SYSTEMS");
Param("DEDICATED TO MY FATHER",5);
_SECTION_END();
SetChartBkColor( ParamColor("Chart Color", colorBlack));
_SECTION_BEGIN("BACKGROUD LTRS");
SetChartOptions(0,chartShowArrows|chartShowDates);
GfxSetOverlayMode(1);
GfxSetTextAlign( 6 );// center alignment
GfxSetTextColor( ParamColor("Text Color", ColorHSB( 42, 42, 42 ) ));
GfxSetBkMode(0); // transparent
GfxSelectFont("Tahoma", Status("pxheight")/12);
GfxTextOut( "PRASAD ANALYTICS ©", Status("pxwidth")/2, Status("pxheight")/14);
GfxSelectFont("Tahoma", Status("pxheight")/9 );
GfxTextOut( Name(), Status("pxwidth")/2, Status("pxheight")/4.1 );
GfxSelectFont("arial narrow", Status("pxheight")/27 );
GfxTextOut( "Dedicated to MY FATHER : BALKRISHNA RAO", Status("pxwidth")/2, Status("pxheight")/1.15);
_SECTION_END();
_SECTION_BEGIN("MACD Plotter ver 3");
/**********************************************************
/MACD Cross
***********************************************************/
StartBar=SelectedValue(BarIndex());
FinishBar = EndValue( BarIndex() );
i = Startbar;
EWODAILY = EMA(C,5) - EMA(C,34);
SIG = EMA(EWODAILY,5);
GfxSelectFont("Tahoma", 11, 700 );
todayEWODAILY = EWODAILY ;
onedaybackEWODAILY =Ref(EWODAILY ,-1);
twodaybackEWODAILY = Ref(EWODAILY ,-2) ;
if( (todayEWODAILY [i] > onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] <= twodaybackEWODAILY [i]))
{
GfxSetTextColor(ColorRGB(186,236,94));
GfxTextOut("New Trend Up",400,1);
}
if( (todayEWODAILY [i] < onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] >= twodaybackEWODAILY [i]) )
{
GfxSetTextColor(colorRed);
GfxTextOut("New Trend Dn",400,1);
}
if((todayEWODAILY [i] > onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] >= twodaybackEWODAILY [i])
)
{
GfxSetTextColor(ColorRGB(221,248,112));
GfxTextOut("Trend Up",400,1);
}
if( (todayEWODAILY [i]< onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] <= twodaybackEWODAILY [i])
)
{
GfxSetTextColor(ColorRGB(248,113,113));
GfxTextOut("Trend Dn",400,1);
}
EWODAILY_ZEROCRUP = Cross(EWODAILY ,0);
EWODAILY_ZEROCRDN = Cross(0,EWODAILY );
if(EWODAILY_ZEROCRUP[I])
{
GfxSetTextColor(ColorRGB(221,248,112));
GfxTextOut("Zero Cross Up",550,1);
}
if(EWODAILY_ZEROCRDN[I])
{
GfxSetTextColor(ColorRGB(248,113,113));
GfxTextOut("Zero Cross Dn",550,1);
}
mycolor=IIf(EWODAILY <0 f="" olorrgb="">0 ,ColorRGB(151,220,150),colorWhite));0>
Plot(EWODAILY , "EWODAILY ", mycolor, styleHistogram | styleThick| styleNoLabel, styleOwnScale);
Plot(SIG ,"",colorRed,styleLine|styleThick);
/****************************************************
CHART TITLES
****************************************************/
/****************************************************
CHART TITLES
****************************************************/
GfxSetTextAlign( TA_left = 0);
GfxSelectFont("Tahoma", 11, 700 );
GfxSetTextColor(ColorRGB(209,191,255));
GfxTextOut("PRASAD ANALYTICS - EWO ",07, 0);
GfxSetTextAlign( TA_LEFT = 0 );
GfxSelectFont("Tahoma", 11, 700 );
GfxSetTextColor(ColorRGB(255,180,61));
GfxTextOut(Name()+ " " + Date(),07,20);
Title =
"\n";
_SECTION_END();
_SECTION_BEGIN("PRASAD SYSTEMS");
Param("DEDICATED TO MY FATHER",5);
_SECTION_END();
SetChartBkColor( ParamColor("Chart Color", colorBlack));
_SECTION_BEGIN("BACKGROUD LTRS");
SetChartOptions(0,chartShowArrows|chartShowDates);
GfxSetOverlayMode(1);
GfxSetTextAlign( 6 );// center alignment
GfxSetTextColor( ParamColor("Text Color", ColorHSB( 42, 42, 42 ) ));
GfxSetBkMode(0); // transparent
GfxSelectFont("Tahoma", Status("pxheight")/12);
GfxTextOut( "PRASAD ANALYTICS ©", Status("pxwidth")/2, Status("pxheight")/14);
GfxSelectFont("Tahoma", Status("pxheight")/9 );
GfxTextOut( Name(), Status("pxwidth")/2, Status("pxheight")/4.1 );
GfxSelectFont("arial narrow", Status("pxheight")/27 );
GfxTextOut( "Dedicated to MY FATHER : BALKRISHNA RAO", Status("pxwidth")/2, Status("pxheight")/1.15);
_SECTION_END();
_SECTION_BEGIN("MACD Plotter ver 3");
/**********************************************************
/MACD Cross
***********************************************************/
StartBar=SelectedValue(BarIndex());
FinishBar = EndValue( BarIndex() );
i = Startbar;
EWODAILY = EMA(C,5) - EMA(C,34);
SIG = EMA(EWODAILY,5);
GfxSelectFont("Tahoma", 11, 700 );
todayEWODAILY = EWODAILY ;
onedaybackEWODAILY =Ref(EWODAILY ,-1);
twodaybackEWODAILY = Ref(EWODAILY ,-2) ;
if( (todayEWODAILY [i] > onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] <= twodaybackEWODAILY [i]))
{
GfxSetTextColor(ColorRGB(186,236,94));
GfxTextOut("New Trend Up",400,1);
}
if( (todayEWODAILY [i] < onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] >= twodaybackEWODAILY [i]) )
{
GfxSetTextColor(colorRed);
GfxTextOut("New Trend Dn",400,1);
}
if((todayEWODAILY [i] > onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] >= twodaybackEWODAILY [i])
)
{
GfxSetTextColor(ColorRGB(221,248,112));
GfxTextOut("Trend Up",400,1);
}
if( (todayEWODAILY [i]< onedaybackEWODAILY [i]) AND (onedaybackEWODAILY [i] <= twodaybackEWODAILY [i])
)
{
GfxSetTextColor(ColorRGB(248,113,113));
GfxTextOut("Trend Dn",400,1);
}
EWODAILY_ZEROCRUP = Cross(EWODAILY ,0);
EWODAILY_ZEROCRDN = Cross(0,EWODAILY );
if(EWODAILY_ZEROCRUP[I])
{
GfxSetTextColor(ColorRGB(221,248,112));
GfxTextOut("Zero Cross Up",550,1);
}
if(EWODAILY_ZEROCRDN[I])
{
GfxSetTextColor(ColorRGB(248,113,113));
GfxTextOut("Zero Cross Dn",550,1);
}
mycolor=IIf(EWODAILY <0 f="" olorrgb="">0 ,ColorRGB(151,220,150),colorWhite));0>
Plot(EWODAILY , "EWODAILY ", mycolor, styleHistogram | styleThick| styleNoLabel, styleOwnScale);
Plot(SIG ,"",colorRed,styleLine|styleThick);
/****************************************************
CHART TITLES
****************************************************/
/****************************************************
CHART TITLES
****************************************************/
GfxSetTextAlign( TA_left = 0);
GfxSelectFont("Tahoma", 11, 700 );
GfxSetTextColor(ColorRGB(209,191,255));
GfxTextOut("PRASAD ANALYTICS - EWO ",07, 0);
GfxSetTextAlign( TA_LEFT = 0 );
GfxSelectFont("Tahoma", 11, 700 );
GfxSetTextColor(ColorRGB(255,180,61));
GfxTextOut(Name()+ " " + Date(),07,20);
Title =
"\n";
_SECTION_END();
============================================================
Fractals
Về cơ bản, Fractals là một cấu trúc bao gồm nhiều phần giống nhau. Các nhà toán học gọi đây là sự tự đồng dạng. Bạn không phải đi đâu xa để tìm Fractals, nó ở ngay cạnh bạn, trong thiên nhiên của chúng ta.
Một vỏ sò biển là một Fractal. Một mảnh tuyết là một Fractal. Một đám hay tia chớp cũng là một Fractal.
Một điểm quan trọng của sóng Elliott là vì chúng là những Fractals. Cũng giống như vỏ sò biển, hay mảnh tuyết, sóng Elliott có thể chia thành nhiều sóng Elliott nhỏ hơn.
Bạn đã sẵn sàng nghiên cứu về Elliott chứ? Nào chúng ta bắt đầu!
I. CẤU TRÚC SÓNG ELLIOTT
MÔ HÌNH SÓNG 5-3
Ông Elliott đã chỉ ra rằng thị trường có xu hướng di chuyển trong cái mà ông gọi là mô hình sóng 5-3.
Mô hình 5 sóng đầu được gọi là sóng đẩy (impulse wave).
Mô hình 3 sóng sau được gọi là sóng hiệu chỉnh (corrective wave).
Trong mô hình 5 sóng đầu, sóng 1, 3, 5 là các sóng đẩy (impulse waves) – cùng hướng với xu hướng chính, trong khi đó sóng 2, 4 có tính hiệu chỉnh (corrective waves).
Đầu tiên hãy xem mô hình 5 sóng đẩy với hình vẽ bên dưới:
Nếu bạn còn thấy chưa rõ ràng, vậy ta sẽ thêm 1 chút màu sắc nhé:
Giờ đây bạn có thể nhận thấy một cách rõ ràng 5 sóng, mỗi sóng tương ứng với một màu. Trong phạm vi tài liệu này, chúng ta sẽ sử dụng cổ phiếu để minh họa. Ngoài ra, lý thuyết Elliott có thể dễ dàng áp dụng cho tiền tệ, trái phiếu, vàng, dầu, ngoại hối…
Dưới đây là mô tả ngắn gọn về mỗi sóng:
Sóng 1
Sóng 1 hiếm khi rõ ràng khi hình thành. Khi sóng đầu tiên của đợt thị trường tăng bắt đầu, tin cơ bản gần như là tiêu cực ở toàn cầu. Xu hướng trước đó được xem là vẫn còn hiệu lực. Tuy nhiên giá bắt đầu tăng nhẹ do các nhà đầu tư nhận định giá đang ở mức thấp và là thời điểm thích hợp để mua vào. Khối lượng giao dịch dường như tăng một chút khi giá tăng, nhưng không đủ để cảnh báo các nhà phân tích kỹ thuật.
Sóng 2
Tại thời điểm này, 1 phần các nhà đầu tư mua vào tin rằng cổ phiếu đã tăng vượt mức giá trị của nó và quyết định chốt lời, điều này khiến các cổ phiếu giảm điểm. Thường là thông tin vĩ mô, vi mỗ vẫn xấu. Cảm xúc giá giảm nhanh chóng hình thành, và “đám đông” vẫn tin là thị trường vẫn đi xuống. Tuy nhiên, một số dấu hiệu tích cực xuất hiện: khối lượng giao dịch thấp khi giá đi xuống, giá không giảm thấp hơn 61,8% độ dài của sóng 1.
Sóng 3
Sóng 3 thông thường là sóng lớn nhất và mạnh nhất trong một xu hướng (sóng 3 không bao giờ là sóng ngắn nhất). Thông tin tích cực và nhà phân tích cơ bản dự báo tích cực về lợi nhuận của doanh nghiệp cũng như triển vọng thị trường. Các nhà đầu tư tham gia mạnh vào thị trường, giá nhanh chóng tăng vượt qua đỉnh của sóng 1 cùng với sự gia tăng của khối lượng giao dịch.
Sóng 4
Sóng 4 thường rõ ràng là sóng điều chỉnh giảm khi các nhà đầu tư đã nhận được 1 tỷ suất sinh lợi như kỳ vọng đồng thời bắt đầu xuất hiện cảm giác lo ngại khi thị trường đã tăng điểm mạnh ở sóng 3 dẫn đến hành vi chốt lời hàng loạt (mặc dù có thể không có thông tin xấu trong giai đoạn này). Sóng 4 thường là sóng phức tạp và khó dự đoán nhất.
Sóng 5
Sóng 5 là sóng cuối cùng trong xu hướng chính. Tiếp tục là những thông tin tích cực về triển vọng vĩ mô, vi mô. Các nhà đầu tư tham gia vào thị trường đẩy giá tăng trở lại vượt qua đỉnh của sóng 3. Tuy nhiên sóng 5 thường không tăng mạnh bằng sóng 3 và khối lượng giao dịch thường thấp hơn sóng 3. Vào cuối sóng 5, bắt đầu xuất hiện dấu hiệu phân kỳ của các chỉ báo dao động như Stochastic, MACD,…
Sóng điều chỉnh ABC
Khi sóng đẩy hoàn thành, thị trường sẽ điều chỉnh sau đó và đổi chiều bởi 3 sóng ngược xu hướng chính. Chữ được sử dụng thay cho số để phân biệt giữa sóng đẩy và sóng điều chỉnh. Dưới đây là ví dụ mô hình 3 sóng điều chỉnh.
Chúng tôi lấy ví dụ về thị trường tăng điểm không có nghĩa lý thuyết sóng Elliott không thể áp dụng cho thị trường giảm điểm. Mô hình sóng 5-3 cũng có thể như sau:
Theo Elliott, có 21 mô hình sóng điều chỉnh ABC từ đơn giản đến phức tạp.
“Trời đất ơi, 21 ư, làm sao tôi có thể nhớ hết tất cả!”
Thực tế nó khá dễ dàng. Điều tuyệt vời về sóng Elliott là bạn không phải ghi nhớ tất cả 21 dạng sóng điều chỉnh ABC bỏi vì nó được hình thành bởi 3 mẫu rất đơn giản và dễ hiểu.
a) Mẫu Zig-Zag
Mẫu Zig-Zag là những đường giá di chuyển dốc ngược lại với xu hướng hiện tại. Sóng B thường có chiều dài ngắn nhất so với sóng A và C. Mô hình Zig-Zag có thể xảy ra 2 hoặc 3 lần trong một lần điều chỉnh (từ 2 đến 3 mô hình zig-zag gắn với nhau). Giống như tất cả các sóng, mỗi sóng trong mô hình zig-zag có thể chia thành 5 mô hình sóng.
b) Mẫu phẳng
Mẫu phẳng đơn giản là sóng đi ngang. Nhìn chung thì độ dài của sóng là giống nhau và sóng B là đảo chiều của sóng A và sóng C. Đôi khi sóng B có thể đi xa hơn điểm bắt đầu của sóng A.
c) Mẫu tam giác
Mẫu tam giác là mô hình điều chỉnh bởi sự hội tụ hay phân kỳ các đường xu hướng. Tam giác được tạo bởi 5 sóng di chuyển ngược với xu hướng. Những tam giác này có thể đối xứng, giảm dần, tăng dần, hoặc mở rộng.
II. ĐẶC ĐIỂM CỦA SÓNG ELLIOTT
1. SÓNG TRONG SÓNG
Như chúng ta đã đề cập trước đó, các sóng Elliot là các Fractals. Môi sóng được tạo bởi các sóng phụ. Tôi sẽ cho bạn xem một bức tranh khác về sóng Elliott.
Thú vị phải ko ? Bạn có thấy là sóng 1,3, và 5 được tạo bởi mô hình 5 sóng đẩy trong khi sóng 2 và 4 được tạo bởi mô hình 3 sóng điều chỉnh? Hãy nhớ là mỗi sóng đều bao gồm các mô hình sóng nhỏ hơn. Các mô hình này lập lại chính nó. Mãi mãi…
Để dễ dàng nhận diện những sóng này, lý thuyết sóng Elliott đã phân ra một loạt các loại sóng theo thứ tự từ lớn nhất đến nhỏ nhất:
1. Grand Supercycle: kéo dài từ vài thập kỷ đến vài thế kỷ
2. Supercycle: kéo dài từ vài năm đến vài thập kỷ
3. Cycle: kéo dài từ vài quý đến vài năm
4. Primary: kéo dài từ vài tháng đến vài năm
5. Intermediate: kéo dài từ vài tháng đến vài quý
6. Minor: kéo dài từ vài tuần đến vài quý
7. Minute: kéo dài từ vài tuần tuần đến vài tháng
8. Minuette: kéo dài từ vài ngày đến vài tháng
9. Subminuette: kéo dài từ vài ngày đến vài tuần
10. Micro: kéo dài từ vài giờ đến vài ngày
11. Submicro: kéo dài từ vài phút đến vài giờ
2. SÓNG ĐẨY MỞ RỘNG
Một điều mà bạn cần phải biết về lý thuyết sóng Elliott là một trong 3 sóng đẩy sẽ luôn luôn được mở rộng. Đơn giản là sẽ luôn có một sóng dài hơn hai sóng còn lại.
Theo Elliott, thường sóng thứ năm sẽ được mở rộng. Tuy nhiên, theo thời gian nó đã thay đổi và rất nhiều người bắt đầu cho là sống thứ 3 là một sóng mở rộng.
Dưới đây là các dạng sóng mở rộng.
3. "SÓNG CỤT" (TRUNCATION)
Thường thường, sóng 5 phát triển trong điều kiện quá bán khi các nhà đầu tư đã nhận diện sóng Elliott một cách khá rõ ràng và họ biết rằng đây có thể là con sóng cuối cùng trong xu hướng tăng. Điều này đôi khi có thể làm cho chiều cao của sóng 5 thấp hơn sóng 3. Được gọi là "sóng cụt" (truncation)
4. "TAM GIÁC CHÉO" (DIAGONAL TRIANGLE)
Tam giác chéo là trường hợp đặc biệt mà sóng 4 có thể đi vào biên độ của sóng 1. Nói một cách khác là sóng 4 và sóng 1 chéo nhau - đây cũng là nguyên nhân xuất hiện tên gọi của nó là "tam giác chéo"
Quy tắc:
- Mô hình Diagonal Triangle bao gồm 5 sóng.
- Sóng 3 không bao giờ là sóng ngắn nhất so với các sóng khác.
- Sóng 4 và Sóng 1 chéo nhau (vì thế nó có tên gọi là Tam giác chéo), tức là đáy Sóng 4 đi vào biên độ của Sóng 1.
- Sóng 4 không vượt qua điểm khởi nguồn của Sóng 3.
- Sóng 5 phải vượt qua điểm cuối của Sóng 3.
Tam giác chéo được phân chia thành 2 loại: Leading Diagonal Triangle và Ending Diagonal Triangle
Mô hình sóng Ending Diagonal Triangle thuộc dạng mô hình sóng chủ xảy ra ở các sóng cuối một cấp độ sóng như sóng 5 hay sóng C. Không nên nhầm lẫn nó với các mô hình tam giác điều chỉnh.
Mô hình sóng Ending Diagonal Triangle là hiện tượng tương đối hiếm đối với các cấp độ sóng lớn mà thường xuất hiện ở các cấp độ sóng thấp hơn trên các đồ thị giá trong ngày (intraday). Thường thì theo sau mô hình Diagonal Triangle là sự thay đổi mạnh về xu hướng thị trường.
Vị trí xuất hiện: Mô hình Ending Diagonal Triangle xuất hiện ở các sóng 5, C.
Cấu trúc sóng bên trong: Mô hình Ending Diagonal Triangle bao gồm 5 sóng và có cấu trúc sóng bên trong theo dạng 3-3-3-3-3.
Mô hình sóng Leading Diagonal Triangle thuộc dạng mô hình sóng chủ thường xảy ra ở đầu một cấp độ sóng như sóng 1 hay sóng A hay nói cách khác nó nằm trong sóng 1 hoặc sóng A. Không nên nhầm lẫn nó với các mô hình tam giác điều chỉnh. Điểm khác của mô hình này với mô hình Ending Diagonal Triangle là các sóng 1, 3 và 5 có cấu trúc sóng bên trong gồm 5 sóng chứ không phải 3 sóng như mô hình Ending Diagonal Triangle.
Cũng như mô hình sóng Ending Diagonal Triangle thì mô hình sóng Leading Diagonal Triangle là hiện tượng tương đối hiếm đối với các cấp độ sóng lớn mà thường xuất hiện ở các cấp độ sóng thấp hơn trên các đồ thị giá trong ngày (intraday). Thường thì theo sau mô hình Diagonal Triangle là sự thay đổi mạnh về xu hướng thị trường.
Vị trí xuất hiện: Mô hình Leading Diagonal Triangle xuất hiện ở các sóng 1 và A.
Cấu trúc sóng bên trong: Mô hình Leading Diagonal Triangle bao gồm 5 sóng có cấu trúc sóng bên trong theo dạng 5-3-5-3-5.
III. ĐO LƯỜNG SÓNG
Sóng 1
Sóng 1 có điểm xuất phát từ thị trường con gấu (suy thoái). Do đó, sóng 1 ít khi được nhận biết ngay từ đầu. Mục đích của việc đo lường sóng 1 để tìm ra tỷ lệ của các sóng còn lại. Mặc dù không có một quy tắc nhất định nào trong tỷ lệ của các sóng còn lại, nhưng có những tác dụng nhất định trong việc ước tính độ dài của các con sóng khác. Trước khi nói về các tỷ lệ này, chúng ta cần phải đến Fibonacci trước.
Tỷ lệ Fibonacci là những tỷ lệ toán học được tính ra từ các con số của dãy số Fibonacci. Dãy số Fibonacci được tìm ra bởi Leonardo Fibonacci từ năm 1180 trước công nguyên. Dãy số Fibonacci được sử dụng rất nhiều tronng các lĩnh vực như máy móc, vũ trụ, chứng khoán,… Đây là cơ sở sản sinh ra các tỷ lệ Fibonacci với mục đích dùng nó để hỗ trợ giao dịch.
Các tỷ lệ Fibonacci được dùng thường xuyên nhất là:
1 1.618 2.618 4.23 6.85 (mở rộng)
0.14 0.25 0.5 0.618 (thoái lui)
Sóng 2
Sóng 2 thường thoái lui về mức 0.5 hoặc 0.62 (làm tròn từ 0.618) so với sóng 1.
Sóng 3
Sóng 3 thường có quan hệ tỷ lệ với sóng 1 theo một trong ba trường hợp sau: Sóng 3 = 1.62 sóng 1; Hoặc = 2.62 sóng 1; hoặc 4.25 sóng 1
Các tỷ lệ thường thấy nhất là 1.62 và 2.62. Tuy nhiên, nếu sóng 3 là sóng mở rộng thì các tỷ lệ 2.62 và 4.25 phổ biến hơn.
Sóng 4
Sóng 4 thường có quan hệ với sóng 3 theo một trong ba trường hợp sau: sóng 4 = 24% sóng 3; hoặc = 38% sóng 3; hoặc bằng 50% sóng 3
Các tỷ lệ 24% và 38% là phổ biến nhất cho sóng 4
Sóng 5
Sóng 5 có hai quan hệ tỷ lệ theo hai trường hợp:
Nếu độ dài sóng 3 > 1.62 sóng 1 thì tỷ lệ của sóng 5 như sau: sóng 5 = sóng 1; hoặc = 1.62 sóng 1; hoặc = 2.62 sóng 1
Nếu độ dài sóng 3 > 1.62 sóng 1 thì tỷ lệ của sóng 5 như sau: sóng 5 = sóng 1; hoặc = 1.62 sóng 1; hoặc = 2.62 sóng 1
IV. PHƯƠNG PHÁP VẼ SÓNG ELLIOTT
1. Giới thiệu khái quát:
Vẽ kênh giá là phương pháp quan trọng không chỉ quyết định vị trí các sóng nội bộ mà còn dự đoán được các mục tiêu cho sóng kế tiếp.
Kênh giá là những đường xu hướng song song, ít nhiều cũng chứa toàn bộ dao động giá của một sóng. Dù các đường xu hướng của mô hình Triangle không song song nhưng chúng cũng được coi là kênh giá.
Dưới đây là minh họa kênh giá của mô hình sóng chủ và mô hình sóng điều chỉnh.
Các sóng thuộc cùng cấp độ sóng có thể được nhận diện bằng cách vẽ các kênh giá. Đặc biệt trong trường hợp các cấu trúc sóng chủ, sóng Zigzag và mô hình tam giác. Nếu những sóng này không tương xứng nhau thì nên tìm kiếm cách tính sóng tùy chọn khác.
2. Cách vẽ kênh giá và dự đoán mục tiêu sử dụng kênh giá:
a) Mục tiêu sóng 3 hoặc sóng C:
Vẽ một kênh giá ngay sau khi sóng 1 và sóng 2 hoàn thành. Nối điểm khởi đầu của sóng 1 (được đánh dấu là 0) với điểm cuối của sóng 2, sau đó vẽ một đường song song kéo từ đỉnh sóng 1.
Đường song song này có vai trò là mục tiêu tối thiểu của sóng 3 đang phát triển. Nếu sóng 3 không thể bức phá qua đường song song này hoặc không thể chạm đến nó thì có thể đó là sóng C chứ không phải là sóng 3.
Đường hỗ trợ từ 0 đến sóng 2 có vai trò là mức chặn. Khi đường này bị phá vỡ thì rất có khả năng sóng 2 hoặc B di chuyển phức tạp hơn vì thế sóng 3 hoặc C chưa bắt đầu hình thành.
Chú ý rằng sóng 3 thường là sóng mạnh nhất và sẽ vượt qua đường xu hướng trên.
b) Mục tiêu sóng 4:
Ngay sau khi sóng 3 hoàn thành thì có thể vẽ một kênh giá bằng cách nối điểm cuối của sóng 1 với điểm cuối của sóng 3 bằng một đường xu hướng rồi vẽ một đường song song từ điểm cuối của sóng 2. Bằng cách này có thể dự đoán mục tiêu sóng 4. Chú ý rằng thông thường đường nằm dưới từ sóng 2 sẽ bị phá vỡ một chút do hành động giá của sóng 4. Đường hỗ trợ này có vai trò là mục tiêu tối thiểu của sóng 4.
Nếu sóng 4 không đến gần được đường này thì đây là biểu hiện của một xu hướng rất mạnh. Có thể xu hướng giá vẫn đang ở sóng 3 hoặc sẵn sàng cho sự bức phá mạnh ở sóng 5.
c) Mục tiêu sóng 5:
- Phương pháp 1:
Ngay sau khi sóng 4 hoàn thành thì có thể vẽ một kênh giá nối điểm cuối của sóng 2 với điểm cuối của sóng 4 bằng một đường xu hướng sau đó vẽ đường song song từ điểm cuối của sóng 3. Bằng cách này có thể dự đoán mục tiêu sóng 5.
Thông thường sóng 5 sẽ không chạm đến đường xu hướng nằm trên, trừ khi song 5 theo mô hình mở rộng Extension5 hoặc khi sóng 3 tương đối yếu. Trong mô hình Extension5 với biểu hiện khối lượng giao dịch cao và các chỉ báo xung lượng mạnh mẽ thì hiện tượng vượt quá (throwover) có thể xuất hiện.
Phương pháp 2:
Thường thì sóng 3 là sóng mạnh nhất cho thấy tốc độ di chuyển rất nhanh khi so sánh với sóng 1 và sóng 5. Nếu sóng 3 cho thấy một đợt tăng giá hoặc giảm giá gần như thẳng đứng thì vẽ một đường xu hướng nối sóng 2 với sóng 4 rồi vẽ đường song song từ sóng 1.
Đường song song này sẽ cắt qua sóng 3 và sẽ tạo mục tiêu cho sóng 5. Kinh nghiệm cho thấy đây là kênh giá rất có giá trị.
d) Mục tiêu sóng D và E:
Ngay sau khi sóng B hoàn thành thì có thể vẽ một đường xu hướng nối điểm khởi đầu sóng A với điểm cuối sóng B để định mục tiêu cho sóng D khi mô hình Triangle đang phát triển. Điều này chắc chắn hơn sau khi sóng C hoàn thành.
Ngay sau khi sóng C hoàn thành thì có thể vẽ đường xu hướng nối sóng A với điểm cuối sóng C để định mục tiêu sóng E. Hầu như không bao giờ sóng E dừng ngay tại đường xu hướng mà chỉ ghé sát đường xu hướng một cách nhanh chóng và tạm thời.
e) Mục tiêu trong mô hình Double Zigzag:
Việc vẽ một kênh giá là điều rất quan trọng để phân biệt các mô hình Double Zigzag với các mô hình sóng đẩy (Impulse) trong khi việc phân biệt chúng vốn khó khăn do chúng đều có đặc trưng sóng chủ. Các mô hình Double Zigzag có xu hướng chạm kênh giá gần như hoàn hảo trong khi ở mô hình Impulse thì sóng 3 thường phá vỡ ra khỏi kênh giá.
Phân tích các sóng điều chỉnh kết hợp Fibonacci
Các quá trình điều chỉnh có xu thế đưa giá trở lại khu vực sóng thứ 4 ở cấp độ sóng nhỏ hơn và cũng thường vượt qua khu vực này và đi vào khu vực sóng thứ 2 ở cấp độ sóng nhỏ hơn. Nếu quá trình điều chỉnh phát triển theo mô hình Flat (FL), mô hình Contracting Triangle (CT) thì quá trình điều chỉnh thường giới hạn trong phạm vi 38.2% – 50.0% và thực tế này đúng thậm chí quá trình điều chỉnh là sóng thứ 2.
Một mức hồi lại không quá 38.2% quá trình dao động trước đó cho thấy một sức mạnh tiềm ẩn của xu hướng chính. Mức hồi 50.0% thường xuất hiện trong chuỗi 5 sóng nhưng không xuất hiện thường xuyên như mức hồi 61.8%. Tuy nhiên mức hồi 50.0% lại rất phổ biến ở những sóng điều chỉnh tăng trong thị trường đầu cơ giá xuống ví dụ như sóng B trong mô hình Zigzag (ZZ).
1. Mục tiêu sóng A:
Sau mô hình Ending Diagonal (ED) trong sóng (5) thì sóng A hồi về sóng 2 của mô hình Ending Diagonal (ED) này.
Khi sóng A là một phần của mô hình Contracting Triangle (CT), sóng (B) hoặc sóng (4) thì nó thường hồi lại 38.2% của cả 5 sóng trước đó và đi vào phạm vi sóng thứ 4 của 5 sóng này.
Trong mô hình Zigzag (ZZ) thì sóng B hầu như hồi lại 38.2% hoặc 61.8% sóng A. Trong mô hình Flat (FL) thì nó xấp xỉ bằng sóng A. Trong mô hình Flat (FL) Irregular thì nó thường đi một khoảng cách bằng 138.2% sóng A.
3. Mục tiêu sóng C:
3. Mục tiêu sóng C:
Sóng C có chiều dài ít nhất là 61.8% sóng A. Nó có thể ngắn hơn trong trường hợp mô hình Zigzag (ZZ) Running hoặc Flat (FL) Running trong đó sóng C rất ngắn và không thể vượt qua điểm cuối của sóng A.
Nhìn chung sóng C bằng với sóng A hoặc đi một khoảng cách bằng 161.8% sóng A. Sóng C thường đạt 161.8% chiều dài sóng a trong mô hình Flat (FL) Irregular.
Trong mô hình Contracting Triangle (CT) thì sóng C thường bằng 61.8% sóng A. Trong mô hình Expanding Triangle (ET) thì sóng C thường bằng 161.8% sóng A.
4. Mục tiêu sóng D:
4. Mục tiêu sóng D:
Trong mô hình Contracting Triangle (CT) thì sóng D thường bằng 61.8% sóng B. Trong mô hình Expanding Triangle (ET) thì sóng C thường bằng 161.8% sóng B.
5. Mục tiêu sóng E:
Trong mô hình Contracting Triangle (CT) thì sóng E thường bằng 61.8% sóng C. Trong mô hình Expanding Triangle (ET) thì sóng E thường bằng 161.8% sóng C.
6. Mục tiêu sóng X:
0 Nhận xét :
Đăng nhận xét