WcciPatterns_v2
Download scriptThe Woodies CCI Patterns script is a comprehensive technical analysis tool designed to identify various market dynamics based on the Commercially Commodity Channel Index (CCI). Rather than providing simple "buy" or "sell" pings, this script identifies several distinct behaviors in price action—ranging from trend following to counter-trend reversals.
The logic of the script can be broken down into three main categories: Trend Following, Counter-Trend/Reversal, and Exit Signals.
1. Trend Following Logic
These patterns are designed for traders who want to align themselves with the prevailing momentum of the market.
- Zero-line Reject (ZLR): This identifies instances where the CCI shows a strong "rejection" of the zero line. It looks for sharp movements away from the center, signaling that the current trend has enough strength to push prices further in that direction.
- Trend Line Break (TLB): This logic constructs and monitors actual trend lines based on previous peaks and valleys in the CCI data. It generates a signal when the price "breaks" through these established levels. It is versatile but most effectively used to confirm moves in the direction of the current trend.
- Reverse Divergence (Rev Diver): A more nuanced trend-following signal. It looks for two consecutive "internal" peaks or valleys that occur closer to the zero line than previous ones. This suggests the trend is maturing and provides a confirmation for traders looking to enter on slight pullbacks.
2. Counter-Trend & Reversal Logic
These patterns are designed to identify potential exhaustion points where the price may be about to change direction. They are generally considered more advanced and riskier than trend-following signals.
- Shamu Trade: This identifies a specific "zigzag" behavior around the zero line. It detects when the CCI crosses the center, reverses, and then attempts to cross back in the original direction. It is often used as a "stop-and-reverse" signal for failed trends.
- Vegas Trade (VT): This is a complex reversal pattern that looks for a "rounded" price action or a "hook." It identifies a sequence of bars forming a curved shape that suggests a significant shift in momentum. The logic suggests these are high-potential reversal points but recommends using additional filters (like moving averages) to confirm the strength of the move.
- Ghost Trade: This pattern seeks out specific geometric shapes—specifically "Head and Shoulders" formations—within the CCI data. When these structural patterns form and break through their own trend lines, it signals a potential trend exhaustion.
- Hook from Extremes (HFE): This identifies "overextended" price action. It triggers when the CCI moves into extreme territory (far beyond typical boundaries) and then sharply "hooks" back toward the zero line. These are high-speed reversal signals that require quick execution.
3. Exit Strategy
The script includes a dedicated logic layer for identifying when it may be time to close an existing position. It monitors several conditions to trigger an exit, including:
- The formation of a "Hook from Extremes."
- A breach of the Trend Line (TLB) in a counter-trend direction.
- Specific instances where price action suggests that the move has reached its climax or is losing its structural integrity.
Summary Table for Quick Reference
| Signal Type | Pattern Name | Primary Logic Category | | :--- | :--- | :--- | | Trend | Zero-line Reject (ZLR) | Momentum / Strength | | Trend | Trend Line Break (TLB) | Structural Breakout | | Trend | Reverse Divergence | Mature Trend Confirmation | | Counter | Shamu Trade | Zigzag / Failed Reversal | | Counter | Vegas Trade (VT) | Rounded Exhaustion | | Counter | Ghost Trade | Head & Shoulders Geometry | | Counter | Hook from Extremes (HFE) | Extreme Overextension | | Exit | Exit Signal | Profit Taking / Risk Mitigation |
//+------------------------------------------------------------------+
//| |
//| Copyright © 2000-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "(C)2005, Yuri Ershtad"
#property link "http://www.metaquotes.net"
//----
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 MediumSeaGreen
#property indicator_color2 OrangeRed
#property indicator_color3 DeepSkyBlue
#property indicator_color4 IndianRed
#property indicator_color5 Tomato
#property indicator_color6 LimeGreen
#property indicator_color7 Coral
#property indicator_color8 Red
// Ïàðåìåòû
extern int fastPeriod =6;
extern int slowPeriod =14;
// Áóôåðû äàííûõ
double ZlrBuffer[]; // 1. Zero-line Reject (ZLR) -- trend
double ShamuBuffer[]; // 2. Shamu Trade -- counter
double TlbBuffer[]; // 3. Trend Line Break (TLB/HTLB) -- both
double VegasBuffer[]; // 4. Vegas Trade (VT) -- counter
double GhostBuffer[]; // 5. Ghost Trade -- counter
double RevdevBuffer[]; // 6. Reverse Divergence -- trend
double HooksBuffer[]; // 7. Hook from Extremes (HFE) -- counter
double ExitBuffer[]; // 8. Exit signals
// Èíèöèàëèçàöèÿ
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
string short_name;
IndicatorBuffers(8);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
// Ñèãíàëû îáîçíà÷àþòüñÿ öèôðàìè îò 1 äî 8.
// Äëÿ ñèãíàëîâ ê òîðãîâëå ïî òðåíäó èñïîëüçóåòñÿ çåëåíàÿ ãàììà,
// ïðîòèâ òðåíäà êðàñíàÿ, ñèíÿÿ - äëÿ TLB è HTLB
// ----
short_name="Woodies CCI Paterns ("+fastPeriod+","+slowPeriod+")";
IndicatorShortName(short_name);
// Zero-line Reject (ZLR), trend
SetIndexStyle(0, DRAW_ARROW, EMPTY, 1, MediumSeaGreen);
SetIndexBuffer(0, ZlrBuffer);
SetIndexArrow(0, 140);
SetIndexLabel(0,"Zero-line Reject (ZLR), trend");
SetIndexEmptyValue(0, EMPTY_VALUE);
SetIndexDrawBegin(0, slowPeriod);
// Shamu Trade, counter-trend
SetIndexStyle(1, DRAW_ARROW, EMPTY, 1, OrangeRed);
SetIndexBuffer(1, ShamuBuffer);
SetIndexArrow(1, 141);
SetIndexLabel(1,"Shamu Trade, counter-trend");
SetIndexEmptyValue(1, EMPTY_VALUE);
SetIndexDrawBegin(1, slowPeriod);
// Trend Line Break (TLB), both
SetIndexStyle(2, DRAW_ARROW, EMPTY, 1, DeepSkyBlue);
SetIndexBuffer(2, TlbBuffer);
SetIndexArrow(2, 142);
SetIndexLabel(2,"Trend Line Break (TLB), both");
SetIndexEmptyValue(2, EMPTY_VALUE);
SetIndexDrawBegin(2, slowPeriod);
// Vegas Trade (VT), counter-trend
SetIndexStyle(3, DRAW_ARROW, EMPTY, 1, IndianRed);
SetIndexBuffer(3, VegasBuffer);
SetIndexArrow(3, 143);
SetIndexLabel(3,"Vegas Trade (VT), counter-trend");
SetIndexEmptyValue(3, EMPTY_VALUE);
SetIndexDrawBegin(3, slowPeriod);
// Ghost Trade, counter-trend
SetIndexStyle(4, DRAW_ARROW, EMPTY, 1, Tomato);
SetIndexBuffer(4, GhostBuffer);
SetIndexArrow(4, 144);
SetIndexLabel(4,"Ghost Trade, counter-trend");
SetIndexEmptyValue(4, EMPTY_VALUE);
SetIndexDrawBegin(4, slowPeriod);
// Reverse Divergence, trend
SetIndexStyle(5, DRAW_ARROW, EMPTY, 1, LimeGreen);
SetIndexBuffer(5, RevdevBuffer);
SetIndexArrow(5, 145);
SetIndexLabel(5,"Reverse Divergence, trend");
SetIndexEmptyValue(5, EMPTY_VALUE);
SetIndexDrawBegin(5, slowPeriod);
// Hook from Extremes (HFE), counter-trend
SetIndexStyle(6, DRAW_ARROW, EMPTY, 1, Coral);
SetIndexBuffer(6, HooksBuffer);
SetIndexArrow(6, 146);
SetIndexLabel(6,"Hook from Extremes (HFE), counter-trend");
SetIndexEmptyValue(6, EMPTY_VALUE);
SetIndexDrawBegin(6, slowPeriod);
// Exit signal
SetIndexStyle(7, DRAW_ARROW, EMPTY, 1, RoyalBlue);
SetIndexBuffer(7, ExitBuffer);
SetIndexArrow(7, 251);
SetIndexLabel(7,"Exit signal");
SetIndexEmptyValue(7, EMPTY_VALUE);
SetIndexDrawBegin(7, slowPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
// TODO: add your code here
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
string symbolName;
int i, shift, checksum, counted_bars=IndicatorCounted();
if (Bars<slowPeriod) return(0);
// check for possible errors
if (counted_bars<0) return(-1);
// last counted bar will be recounted
if (counted_bars>0) counted_bars++;
int limit=Bars-slowPeriod-counted_bars;
if (counted_bars<1 || checksum!=(fastPeriod+slowPeriod+Period()) || symbolName!=Symbol())
{
// Ïàðàìåòðû èçìåíåíû, ïðîâîäèì ðåèíèöèàëèçàöèþ
for(i=1;i<=slowPeriod;i++) ZlrBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) ShamuBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) TlbBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) VegasBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) GhostBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) RevdevBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) HooksBuffer[Bars-i]=EMPTY_VALUE;
for(i=1;i<=slowPeriod;i++) ExitBuffer[Bars-i]=EMPTY_VALUE;
checksum=fastPeriod+slowPeriod+Period();
symbolName=Symbol();
limit=Bars-slowPeriod;
}
for(shift=limit; shift>=0; shift--)
{
// Çàïîëíåíèå ìàññèâà òî÷åê è îïðåäåëåíèå òðåíäà
int delta=25,level=100;
double slowCCI[20], fastCCI[20];
int a, up=0, dn=0, upnt=5,dpnt=5;
for(a=0;a<20;a++)
{
fastCCI[a]=iCCI(NULL,0,fastPeriod,PRICE_TYPICAL,shift+a);
slowCCI[a]=iCCI(NULL,0,slowPeriod,PRICE_TYPICAL,shift+a);
if (a<8) {
if (slowCCI[a]>0) up++;
if (slowCCI[a]<=0) dn++;
}
}
// Ïàòòåðí ¹ 1 - Îòñêîê îò íóëåâîé ëèíèè (ZLR)
// -----------------------------------------------------------
// Ïàòòåðí "Îòñêîê îò íóëåâîé ëèíèè" (ZLR)" ïðåäñòàâëÿåò ñîáîé
// ñèëüíûé îòñêîê CCI îò íóëåâîé ëèíèè (ZL) èëè îò óðîâíÿ,
// íàõîäÿùåãîñÿ áëèçêî ê íåé. Ïðè ýòîì CCI ìîæåò îòñêàêèâàòü îò
// çíà÷åíèé â ïðåäåëàõ îò +100 äî -100 êàê äëÿ äëèííûõ,
// òàê è äëÿ êîðîòêèõ ïîçèöèé. Íåêîòîðûå òðåéäåðû ëþáÿò ñóæàòü
// äèàïàçîí äî +/-50, ñ÷èòàÿ, ÷òî îí ìîæåò îáåñïå÷èòü ëó÷øèé
// îòñêîê. Ïîçèöèÿ îòêðûâàåòñÿ íà ïåðâîì áàðå, êîòîðûé îòêëîíÿåòñÿ
// èëè îòñêàêèâàåò îò íóëåâîé ëèíèè.
// Ðûíî÷íàÿ ïñèõîëîãèÿ â èñïîëüçîâàíèè ïàòòåðíà ZLR ñèñòåìîé
// Woodies CCI ñîñòîèò â òîì, ÷òî ýòîò ïàòòåðí ïîçâîëÿåò òðåéäåðàì
// ïîêóïàòü ïðè ïàäåíèè è ïðîäàâàòü íà ïîäúåìå. Íè îäèí èç
// èíäèêàòîðîâ, èñïîëüçóåìûõ ïðè òîðãîâëå, íå ìîæåò ýòîãî ñäåëàòü,
// êðîìå CCI.
// Äëÿ áîëüøåé ýôôåêòèâíîñòè, ÷òîáû óñèëèòü ñèãíàë íà âõîä,
// Âû ìîæåòå îáúåäèíèòü èñïîëüçîâàíèå ïàòòåðíà ZLR ñ ïàòòåðíîì
// "Ïðîáîé Ëèíèè Òðåíäà (TLB)". Ïðè èñïîëüçîâàíèè ZLR ñîâìåñòíî
// ñ TLB äëÿ îòêðûòèÿ ïîçèöèè Âû æäåòå ïåðåñå÷åíèÿ êðèâîé CCI
// ïàòòåðíà TLB. Òîðãîâëÿ ñ èñïîëüçîâàíèåì ïàòòåðíà
// ZLR - òîðãîâëÿ ïî òðåíäó. Ôàêòè÷åñêè ýòîò ñïîñîá òîðãîâëè
// ìîæåò áûòü åäèíñòâåííûì òîðãîâûì ïàòòåðíîì ñèñòåìû Woodies CCI,
// êîòîðûé èñïîëüçóåòñÿ òðåéäåðîì, äàâàÿ ïðè ýòîì ïðåâîñõîäíóþ
// ïðèáûëü.
// ----
delta=20; // ôèëüòð áèåíèÿ (|ÑÑI[1]-ÑÑI[2]|>delta)
level=80; // ìîäóëü ãðàíèöû ïàòåðíà
ZlrBuffer[shift]=EMPTY_VALUE;
// ---- ZLR â íèñõîäÿùåì òðåíäå
if(dn>=6 &&
slowCCI[0]<slowCCI[1] && slowCCI[2]<slowCCI[1] &&
MathAbs(slowCCI[0])<level && MathAbs(slowCCI[1])<level &&
MathAbs(slowCCI[1]-slowCCI[2])>delta )
{
ZlrBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
// ZLR â âîñõîäÿùåì òðåíäå
if(up>=6
&& slowCCI[0]>slowCCI[1] && slowCCI[2]>slowCCI[1] &&
MathAbs(slowCCI[0])<level && MathAbs(slowCCI[1])<level &&
MathAbs(slowCCI[1]-slowCCI[2])>delta )
{
ZlrBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// Ïàòòåðí ¹ 2 - Øàìó (shamu trade)
// -----------------------------------------------------------
// Ïàòòåðí "Øàìó (shamu trade)" ôîðìèðóåòñÿ, êîãäà CCI ïåðåñåêàåò
// íóëåâóþ ëèíèþ (ZL), çàòåì ðàçâîðà÷èâàåòñÿ íàçàä è ñíîâà
// ïåðåñåêàåò íóëåâóþ ëèíèþ (ZL) â ïðîòèâîïîëîæíîì íàïðàâëåíèè,
// çàòåì åùå ðàç ðàçâîðà÷èâàåòñÿ è ïåðåñåêàåò íóëåâóþ ëèíèþ,
// ïðîäîëæàÿ äâèæåíèå â ïåðâîíà÷àëüíîì íàïðàâëåíèè.
// Ýòî - âèä çèãçàãîîáðàçíîãî ïàòòåðíà âîêðóã ZL.
// Îí íå îáÿçàòåëüíî âîçíèêàåò íåïîñðåäñòâåííî íà íóëåâîé ëèíèè,
// íî ëó÷øèå ïàòòåðíû Øàìó ôîðìèðóþòñÿ ïðè âîçíèêíîâåíèè çèãçàãà
// CCI â ïðåäåëàõ çíà÷åíèé +/-50.
// Òîðãîâûé ïàòòåðí Øàìó - ýòî íåóäàâøèéñÿ ïàòòåðí ZLR.
// Ïåðâîíà÷àëüíî ýòî áûë ïàòòåðí ZLR. Íî ZLR ðàçâåðíóëñÿ â
// ïðîòèâîïîëîæíîì íàïðàâëåíèè è íå ñôîðìèðîâàëñÿ, òàê ÷òî ìû
// äîëæíû âûõîäèòü. Âîò ïî÷åìó Âû íå æäåòå ðàçâîðîòà â íàäåæäå íà òî,
// ÷òî òîðãîâëÿ âåðíåòñÿ â íóæíîå ðóñëî. Åñëè âî âñåõ ýòèõ òîðãîâûõ
// ñëó÷àÿõ Âû èçíà÷àëüíî îòêðûâàåòå ïîçèöèþ ïî ïàòòåðíó ZLR,
// òî çàâèñèò îò Âàñ, è åñëè Âû âîâðåìÿ íå âûøëè, òî ìîæåòå ïîíåñòè
// ïîòåíöèàëüíî áîëüøèå ïîòåðè.
// Òîðãîâëÿ ñ èñïîëüçîâàíèåì ïàòòåðíà Øàìó - ïî ñóòè ÿâëÿåòñÿ
// ïðîòèâîòðåíäîâîé, è áûëà ðàçâèòà êàê ñïîñîá òîðãîâëè ïî ïðèíöèïó
// stop-and-reverse (SAR) ê íåóäàâøåìóñÿ ZLR. Íîâè÷êè, òîëüêî
// íà÷àâøèå èçó÷àòü ñèñòåìó Woodies CCI, íå äîëæíû èñïîëüçîâàòü
// ýòîò ñïîñîá òîðãîâëè. Îäíàêî îáðàòèòå íà íåãî âíèìàíèå è
// èçó÷àéòå ïî ìåðå ïðîäâèæåíèÿ â îñâîåíèè ñèñòåìû.
// ----
delta=15; level=50;
ShamuBuffer[shift]=EMPTY_VALUE;
// øàìó â íèñõîäÿùåì òðåíäå
if (dn>=6 &&
slowCCI[0]>slowCCI[1]+delta &&
slowCCI[1]<slowCCI[2] && slowCCI[2]>slowCCI[3] &&
slowCCI[1]<=level && slowCCI[1]>=-level &&
slowCCI[2]<=level && slowCCI[2]>=-level)
{
ShamuBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// øàìó â âîñõîäÿùåì òðåíäå
if (up>=6 &&
slowCCI[0]<slowCCI[1]-delta &&
slowCCI[1]>slowCCI[2] && slowCCI[2]<slowCCI[3] &&
slowCCI[1]>=-level && slowCCI[1]<=level &&
slowCCI[2]>=-level && slowCCI[2]<=level)
{
ShamuBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
// Ïàòòåðí ¹ 3 - Ïðîáîé Ëèíèè Òðåíäà (TLB)
// -----------------------------------------------------------
// Ïàòòåðí "Ïðîáîé Ëèíèè Òðåíäà (TLB)" èñïîëüçóåò äâà èëè áîëåå
// ïðèëè÷íûõ ðàçìåðîâ ïèêà èëè âïàäèíû, îáðàçóåìûõ CCI èëè TCCI
// äëÿ òîãî, ÷òîáû ïðîâåñòè ÷åðåç íèõ ëèíèþ òðåíäà. Ïðè ïåðåñå÷åíèè
// èëè ïðîáèòèè CCI ýòîé ëèíèè òðåíäà (tl), âîçíèêàåò ñèãíàë äëÿ
// îòêðûòèÿ ïîçèöèè. Ïðè ýòîì, ÷òîáû ñèãíàë áûë äåéñòâèòåëüíûì,
// îäèí êîíåö ëèíèè òðåíäà äîëæåí ðàñïîëàãàòüñÿ íà óðîâíå +/-100
// CCI èëè áîëåå. ×åì áîëüøå òî÷åê êàñàíèÿ èìååò òàêàÿ ëèíèÿ òðåíäà,
// òåì áîëåå çíà÷èìîé îíà ÿâëÿåòñÿ. Èñïîëüçîâàíèå òîëüêî äâóõ òî÷åê
// êàñàíèÿ ÿâëÿåòñÿ íîðìàëüíûì è ñîçäàåò îòëè÷íî äåéñòâóþùèé
// ïàòòåðí TLB. Òàêæå âîçìîæíî ñîâìåñòíîå èñïîëüçîâàíèå êàñàíèé
// CCI è TCCI äëÿ êàæäîé ëèíèè òðåíäà. Ýòîò ïàòòåðí òàêæå èñïîëüçóåòñÿ
// êàê îäèí èç ñèãíàëîâ âûõîäà èëè êàê CCI ñèãíàë ïîäòâåðæäåíèÿ.
// Ýòî âåñüìà óäîáíî è øèðîêî èñïîëüçóåòñÿ â ñèñòåìå Woodies CCI.
// Òîðãîâëÿ ñ èñïîëüçîâàíèåì ïàòòåðíà TLB ìîæåò ïðîâîäèòüñÿ êàê
// ïî òðåíäó, òàê è ïðîòèâ òðåíäà. Íîâè÷êè, èñïîëüçóþùèå ñèñòåìó
// Woodies CCI, äîëæíû òîðãîâàòü ñ ïîìîùüþ ïàòòåðíà TLB òîëüêî ïî
// òðåíäó. Îäíàêî ïðèñìîòðèòåñü ê íåìó è èçó÷àéòå åãî ïî ìåðå
// ïðîäâèæåíèÿ â îñâîåíèè ñèñòåìû.
// Âû ìîæåòå êîìáèíèðîâàòü èñïîëüçîâàíèå ïàòòåðíà "Îòêàò îò
// íóëåâîé ëèíèè (ZLR)" è ïàòòåðíà "Îáðàòíàÿ äèâåðãåíöèÿ (rev diver)"
// ñ ïàòòåðíîì "Ïðîáîé Ëèíèè Òðåíäà (TLB)" äëÿ óñèëåíèÿ ñèãíàëà è
// áîëüøåé âåðîÿòíîñòè óñïåõà. Ïðè èõ ñîâìåñòíîì èñïîëüçîâàíèè Âû
// îòêðûâàåòå ïîçèöèþ ïðè ïðîðûâå ëèíèè òðåíäà, ïîñêîëüêó ýòî
// ïðîèçîéäåò â ïîñëåäíþþ î÷åðåäü.
// Äðóãîé ìåòîä âõîäà â òîðãîâëþ ïî TLB ñîñòîèò â èñïîëüçîâàíèè
// ñèãíàëà ïîäòâåðæäåíèÿ îò CCI, - ïåðåñå÷åíèå èì óðîâíÿ +/-100.
// Ýòî äàåò áîëüøèé øàíñ óñïåøíîñòè ñäåëêè. Âû ìîæåòå íå èñïîëüçîâàòü
// ýòîò ìåòîä è, òåì íå ìåíåå, ïîëó÷èòü áîëüøóþ ïðèáûëü ïðè òîðãîâëå
// ïî TLB, åñëè Âû âõîäèòå çàäîëãî äî ýòîãî óðîâíÿ. Îäíàêî åñëè Âû
// íå äîáàâèòå ïîäòâåðæäåíèå CCI â âèäå ïåðåñå÷åíèÿ èì óðîâíÿ +/-100,
// òîãäà âàøà òîðãîâëÿ ïî TLB ìîæåò ÷àñòî íå ñðàáàòûâàòü. Âûáåðèòå
// ñïîñîá âõîäà è ïðèäåðæèâàéòåñü åãî. Íå ìåíÿéòå åãî åæåäíåâíî.
// Âû î÷åíü ÷àñòî áóäåòå íàõîäèòü âîçíèêàþùèìè ñîâìåñòíî ïàòòåðíû TLB è
// ZLR. Èíîãäà âìåñòå ñ íèìè áóäåò òàêæå ïîÿâëÿòüñÿ ïàòòåðí "rev diver".
// Âû äîëæíû íà÷àòü ðàçëè÷àòü, êîãäà CCI ïàòòåðíû ñëåäóþò îäèí çà äðóãèì,
// à êîãäà ôîðìèðóþòñÿ âìåñòå, ÷òî óñèëèâàåò ñèãíàëû. Ïóñòü Âàñ ýòî íå
// ñìóùàåò. Âàì íåîáõîäèì òîëüêî îäèí CCI ïàòòåðí, ÷òîáû îòêðûòü ïîçèöèþ.
// Îäíàêî åñëè âîçíèêàåò êîìáèíàöèÿ èç íåñêîëüêèõ ñèãíàëîâ, òî âåðîÿòíîñòü
// óñïåõà ýòîé ñäåëêè óâåëè÷èâàåòñÿ.
// -----------------------------------------------------------
// Ïðîáîé Ãîðèçîíòàëüíîé Ëèíèè Òðåíäà (HTLB)
// -----------------------------------------------------------
// Ïðè òîðãîâëå íà ïðîáîå ãîðèçîíòàëüíîé ëèíèè òðåíäà (HTLB) -
// ëèíèÿ òðåíäà ïðîâîäèòñÿ ãîðèçîíòàëüíî ÷åðåç âåðøèíû îòñêîêîâ
// CCI è TCCI îò íóëåâîé ãîðèçîíòàëüíîé ëèíèè, êîòîðûå âûñòðàèâàþòñÿ
// â õîðîøèé ïðÿìîé ðÿä, íî íàèáîëåå ÷àñòî â ýòèõ ïàòòåðíàõ
// èñïîëüçóåòñÿ CCI.
// Ëèíèþ òðåíäà ìîæíî ïðîâåñòè ÷åðåç âíóòðåííèå èëè âíåøíèå òî÷êè
// îòêàòà ïî ëþáóþ ñòîðîíó îò íóëåâîé ëèíèè. Îäíàêî âñå òî÷êè îòêàòà
// äîëæíû ðàñïîëàãàòüñÿ íà îäíîé ñòîðîíå îò íóëåâîé ëèíèè. Ëó÷øèé
// ðåçóëüòàò ìîæåò áûòü äîñòèãíóò ïðè ïðîáîå ãîðèçîíòàëüíîé
// ëèíèè òðåíäà, ðàñïîëîæåííîé â ïðåäåëàõ +/-50.
//  èäåàëå ãîðèçîíòàëüíàÿ ëèíèÿ òðåíäà ñòðîèòñÿ ÷åðåç òðè è áîëåå
// òî÷êè îòêàòà, íî ìîæåò áûòü ïðîâåäåíà è ÷åðåç äâå òî÷êè.
// Êàæäûé îòêàò íà îäèí è òîò æå ãîðèçîíòàëüíûé óðîâåíü ïîêàçûâàåò,
// ÷òî â ýòîé îáëàñòè ðàñïîëàãàåòñÿ ñâîåãî ðîäà çîíà ïîääåðæêè èëè
// ñîïðîòèâëåíèÿ. Ïðè ïðîðûâå ýòîé ëèíèè ìîæíî îæèäàòü ñèëüíîå
// äâèæåíèå è, ñîîòâåòñòâåííî, õîðîøóþ ïðèáûëü. Ýòîò ïàòòåðí ÷àñòî
// ìîæíî âñòðåòèòü íà êîíñîëèäèðóþùåìñÿ ðûíêå.
// Òîðãîâëÿ íà ïðîáîå ãîðèçîíòàëüíîé ëèíèè òðåíäà ìîæåò âåñòèñü
// êàê ïî òðåíäó, òàê è ïðîòèâ òðåíäà. Ñèãíàëû íà âûõîä òå æå ñàìûå,
// ÷òî è ïðè ëþáîì äðóãîì ñïîñîáå òîðãîâëè.
// ----
delta=25; level=100;
// ----
TlbBuffer[shift]=EMPTY_VALUE;
int min1=0,min2=0,min3=0,max1=0,max2=0,max3=0; // çíà÷åíèÿ ìèí/ìàõ
int tmin1=0,tmin2=0,tmin3=0,tmax1=0,tmax2=0,tmax3=0; // âðåìÿ ìèí/ìàõ
double kmin=0,kmax=0; // ëèíåéíûé êîýôôèöèåíò
double line;
// Îïðåäåëåíèå ìèí/ìàêñ è ïîñòðîåíèå ëèíèè òðåíäà
for(a=0;a<=17;a++)
{
// îïðåäåëåíèå ìàêñèìóìîâ
if (slowCCI[a]<=slowCCI[a+1] && slowCCI[a+1]>=slowCCI[a+2])
{
if (max1!=0 && max2==0)
{
max2=slowCCI[a+1];
tmax2=Time[a+1+shift];
kmax=100*(max2-max1)/(tmax2-tmax1);
}
if (max1==0)
{
max1=slowCCI[a+1];
tmax1=Time[a+1+shift];
}
}
// îïðåäåëåíèå ìèíèìóìîâ
if (slowCCI[a]>=slowCCI[a+1] && slowCCI[a+1]<=slowCCI[a+2])
{
if (min1!=0 && min2==0)
{
min2=slowCCI[a+1];
tmin2=Time[a+1+shift];
kmin=100*(min2-min1)/(tmin2-tmin1);
}
if (min1==0)
{
min1=slowCCI[a+1];
tmin1=Time[a+1+shift];
}
}
}
// TLB ctr â íèñõîäÿùåì òðåíäå
if (kmax!=0 && dn>=6 && (max1<-level || max2<-level))
{
line=(Time[shift]-tmax1)*kmax/100+max1;
if (slowCCI[1]<line && slowCCI[0]>=line)
{
TlbBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
}
// TLB ctr â âîñõîäÿùåì òðåíäå
if (kmin!=0 && up>=6 && (min1>level || min2>level))
{
line=(Time[shift]-tmin1)*kmin/100+min1;
if (slowCCI[1]>line && slowCCI[0]<=line)
{
TlbBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
}
// TLB tr â íèñõîäÿùåì òðåíäå
if (kmin!=0 && dn >=6 && (min1<-level || min2<-level))
{
line=(Time[shift]-tmin1)*kmin/100+min1;
if (slowCCI[1]>line && slowCCI[0]<line)
{
TlbBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
}
// TLB tr â âîñõîäÿùåì òðåíäå
if (kmax!=0 && up>=6 && (max1>level || max2>level))
{
line=(Time[shift]-tmax1)*kmax/100+max1;
if (slowCCI[1]<line && slowCCI[0]>line)
{
TlbBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
}
// Ïàòòåðí ¹ 4 - Âåãàñ (VT)
// -----------------------------------------------------------
// Ïàòòåðí Âåãàñ (VT) ÿâëÿåòñÿ êîìáèíàöèåé íåñêîëüêèõ âåùåé.
// Âî-ïåðâûõ, äîëæåí âîçíèêíóòü CCI ïàòòåðí "Ýêñòðåìàëüíûé Êðþê (HFE)",
// ïîñëå ýòîãî äîëæåí ïîÿâèòüñÿ íàáîð CCI áàðîâ â âèäå ÷àñòè÷íî
// çàêðóãëåííîãî èëè îêðóãëîãî ïàòòåðíà. Òàêèõ îêðóãëûõ áàðîâ äîëæíî
// áûòü êàê ìèíèìóì 3 áàðà ïî íàïðàâëåíèþ ê íóëåâîé ëèíèè èëè îò íåå.
// Äðóãèìè ñëîâàìè, çàêðóãëåíèå ìîæåò áûòü â ëþáîì íàïðàâëåíèè â
// çàâèñèìîñòè îò òîãî, íà êàêîé ñòîðîíå îò íóëåâîé ëèíèè (ZL) ôîðìèðóåòñÿ
// âõîäíîé ïàòòåðí. Îäíàêî âõîäíîé ïàòòåðí VT äîëæåí ñôîðìèðîâàòüñÿ
// òîëüêî íà îäíîé ñòîðîíå îò íóëåâîé ëèíèè. Ýòî îçíà÷àåò, ÷òî ïåðâàÿ
// ÷àñòü (îò êðþêà CCI) êîëåáàíèÿ ïàòòåðíà high/low íå ÿâëÿåòñÿ çàêðóãëåííîé
// ÷àñòüþ ïàòòåðíà. Áîëåå ñèëüíûé ñèãíàë âîçíèêàåò, êîãäà êîëåáàíèå
// ïàòòåðíà high/low ñòàíîâèòñÿ çàêðóãëåííîé ÷àñòüþ. Òàêæå ïàòòåðí ìîæåò
// èìåòü íåñêîëüêî êîëåáàíèé high/low. Çàêðóãëåíèå î÷åíü âàæíî äëÿ
// ïàòòåðíà â öåëîì è óêàçûâàåò íà áîðüáó, êîòîðàÿ âïîëíå ìîæåò ïðèâåñòè
// ê ñèëüíîìó ðàçâîðîòó òðåíäà.
// Ïîñëåäíÿÿ ÷àñòü ïàòòåðíà - ëèíèÿ òðåíäà, ïðîâåäåííàÿ ïðÿìî ÷åðåç
// âåðõ èëè íèç íåäàâíåãî êîëåáàíèÿ. Ïðîðûâ ââåðõ èëè âíèç ýòîãî óðîâíÿ -
// íàø âõîä â òîðãîâëþ.
// ----
// Îáû÷íî ïîëíûé ïàòòåðí "Âåãàñ (VT)" ôîðìèðóåòñÿ ãäå-íèáóäü çà ïåðèîä
// îò 8 äî 12 áàðîâ è áîëåå, íî åñëè îí ñòàíîâèòñÿ ñëèøêîì øèðîêèì äî
// ïîÿâëåíèÿ ñèãíàëà íà âõîä, òîãäà âåðîÿòíîñòü óñïåõà ñíèæàåòñÿ, è ñèëà
// äâèæåíèÿ ìîæåò áûòü ìåíüøå. Ïàòòåðí "Âåãàñ (VT)" óêàçûâàåò íà
// ïîòåíöèàëüíóþ âîçìîæíîñòü î÷åíü ñèëüíîãî èçìåíåíèÿ òðåíäà.
// Woodie íàñòîÿòåëüíî ðåêîìåíäóåò èñïîëüçîâàòü 25-lsma èíäèêàòîð
// êàê äîïîëíèòåëüíûé êðèòåðèé âõîäà ïî ïàòòåðíó "Âåãàñ (VT)".
// Êîãäà 25-lsma èíäèêàòîð ïîêàçûâàåò, ÷òî öåíà íàõîäèòñÿ íà ñòîðîíå
// íàïðàâëåíèÿ âõîäà ïî ïàòòåðíó "Âåãàñ (VT)", ñóùåñòâóåò áîëüøàÿ
// âåðîÿòíîñòü òîãî, ÷òî òîðãîâëÿ áóäåò óñïåøíîé. Àááðåâèàòóðà
// ñêîëüçÿùåé ñðåäíåé LSMA îçíà÷àåò Least Squares Moving Average,
// è òàêàÿ ñêîëüçÿùàÿ ñðåäíÿÿ ìîæåò áûòü íàéäåíà â íåêîòîðûõ
// ãðàôè÷åñêèõ ïàêåòàõ ïîä èìåíåì "Êðèâàÿ ëèíåéíîé ðåãðåññèè"
// (Linear Regression Curve).
// Äðóãèìè ñëîâàìè, åñëè ïàòòåðí "Âåãàñ (VT)" ôîðìèðóåòñÿ äëÿ
// äëèííîãî âõîäà, íåîáõîäèìî, ÷òîáû öåíà áûëà âûøå 25-lsma èíäèêàòîðà
// è, ïî âîçìîæíîñòè, 25-lsma òàêæå áûë íàïðàâëåí ââåðõ. Åñëè ïàòòåðí
// VT ôîðìèðóåòñÿ äëÿ êîðîòêîãî âõîäà, íåîáõîäèìî, ÷òîáû öåíà áûëà
// íèæå 25-lsma è, æåëàòåëüíî, ÷òîáû 25-lsma òàêæå áûë íàïðàâëåí âíèç.
// Òàê êàê ìû íå èñïîëüçóåì öåíû, ÷òîáû òîðãîâàòü ïî ñèñòåìå Woodies CCI,
// òî ðåêîìåíäóåòñÿ íà ãðàôèêå öåíû îòîáðàæàòü òîëüêî 25-lsma èíäèêàòîð.
// À ëó÷øå èñïîëüçîâàòü 25-lsma èíäèêàòîð, ðàçìåùåííûé íà îäíîì ãðàôèêå
// ñ CCI, ÷òîáû îòäåëüíûì öâåòîì ïîêàçàòü ýòè ÷åòûðå óñëîâèÿ.
// Òîðãîâëÿ ñ èñïîëüçîâàíèåì ïàòòåðíà "Âåãàñ" ïî ñóòè - òîðãîâëÿ
// ïðîòèâ òðåíäà.
// ----
delta=10; limit=200;
// ----
max1=0; max2=0; tmax1=0; tmax2=0;
min1=0; min2=0; tmin1=0; tmin2=0;
VegasBuffer[shift]=EMPTY_VALUE;
// îïðåäåëåíèå òî÷åê
if (dn>=6)
{
for(a=13;a>=1;a--)
{
if (slowCCI[a]<=slowCCI[a+1] && slowCCI[a+1]>=slowCCI[a+2] &&
min1!=0 && max1==0)
{
max1=slowCCI[a+1];
tmax1=a+1;
}
if (slowCCI[a]>=slowCCI[a+1] && slowCCI[a+1]<=slowCCI[a+2] &&
min1==0 && slowCCI[a+1]<=-limit && a+1>=5)
{
min1=slowCCI[a+1];
tmin1=a+1;
}
}
}
// Îïðåäåëåíèå òî÷åê.
if (up>=6)
{
for(a=13;a>=1;a--)
{
if (slowCCI[a]>=slowCCI[a+1] && slowCCI[a+1]<=slowCCI[a+2] &&
min2!=0 && max2==0)
{
min2=slowCCI[a+1];
tmin2=a+1;
}
if (slowCCI[a]<=slowCCI[a+1] && slowCCI[a+1]>=slowCCI[a+2] &&
max2==0 && slowCCI[a+1]>=limit && a+1>=5)
{
max2=slowCCI[a+1];
tmax2=a+1;
}
}
}
// Vegas â íèñõîäÿùåì òðåíäå
if (dn>=6 && max1!=0 && slowCCI[1]<max1 && slowCCI[0]>=max1 &&
slowCCI[0]-delta>slowCCI[1] /* && slowCCI[0]>slowCCI[1] && !(slowCCI[1]-delta>slowCCI[2]) */)
{
VegasBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// Vegas â âîñõîäÿùåì òðåíäå
if (up >=6 && min2!=0 && slowCCI[1]>min2 && slowCCI[0]<=min2 &&
slowCCI[0]+delta<slowCCI[1]
/* && slowCCI[0]<slowCCI[1] && !(slowCCI[1]+delta<slowCCI[2]) */)
{
VegasBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
// Ïàòòåðí ¹ 5 - Ïðèçðàê (Ghost)
// -----------------------------------------------------------
// Ïàòòåðí "Ïðèçðàê" ôîðìèðóåòñÿ 3 âåðøèíàìè, êîòîðûå ïîñëåäîâàòåëüíî
// îáðàçóþò: îäíó ðóêó, ãîëîâó è çàòåì äðóãóþ ðóêó. (Íàâåðíîå,
// òî÷íåå áóäåò ñêàçàòü: "Ãîëîâà è ïëå÷è"). Ýòè ôèãóðû ìîãóò áûòü
// ñôîðìèðîâàíû êàê CCI, òàê è TCCI. Òåì íå ìåíåå, áîëüøèíñòâî
// òðåéäåðîâ èñïîëüçóþò CCI äëÿ îïðåäåëåíèÿ ýòîãî ïàòòåðíà.
// Æåëàòåëüíî, ÷òîáû ãîëîâà áûëà áîëüøå ïëå÷. Äëÿ îïðåäåëåíèÿ
// òî÷êè âõîäà ïî íèæíèì òî÷êàì ïàòòåðíà "Ïðèçðàê" - ëèíèè
// øåè - ïðîâîäèòñÿ ëèíèÿ òðåíäà.
// Âû ìîæåòå ðàññ÷èòàòü îæèäàåìîå äâèæåíèå CCI äëÿ ïàòòåðíà "Ïðèçðàê",
// èçìåðÿÿ ðàññòîÿíèå îò âåðøèíû ãîëîâû äî ëèíèè øåè, è îíî áóäåò
// ðàâíî ðàññòîÿíèþ îò ëèíèè øåè äî ãîëîâû â ïðîòèâîïîëîæíîì
// íàïðàâëåíèè.  ïðèíöèïå Âû ìîæåòå íå âûñ÷èòûâàòü âîçìîæíîå
// ïîòåíöèàëüíîå äâèæåíèå CCI îò ëèíèè øåè, òàê êàê Âû äîëæíû
// çàêðûòü ïîçèöèþ, êàê òîëüêî CCI äàñò ñèãíàë íà âûõîä. Âñå,
// ÷òî Âû äîëæíû äåëàòü - ñëåäîâàòü çà ñèãíàëàìè âûõîäà,
// îïðåäåëåííûìè ñèñòåìîé Woodies CCI.
// Çàìåòüòå, ÷òî, êîãäà Âû ïðîâîäèòå ëèíèþ øåè (ëèíèÿ òðåíäà)
// íà ïàòòåðíå "Ïðèçðàê", Âû îáúåäèíÿåòå ïàòòåðí "Ïðîðûâ ëèíèè
// òðåíäà (TLB)" ñ ïàòòåðíîì "Ïðèçðàê", ÷òî óñèëèâàåò ñèãíàë è
// óâåëè÷èâàåò âåðîÿòíîñòü óñïåõà. Èíîãäà ëèíèÿ øåè íàêëîíåíà
// ïî íàïðàâëåíèþ ê íóëåâîé ëèíèè. Ýòî - áîëåå ïðåäïî÷òèòåëüíûé
// âàðèàíò ïàòòåðíà "Ïðèçðàê" ïî ñðàâíåíèþ ñ òåì, ïðè êîòîðîì
// ëèíèÿ øåè îòêëîíÿåòñÿ îò íóëåâîé ëèíèè.  ëþáîì ñëó÷àå îáà
// âàðèàíòà ìîãóò áûòü èñïîëüçîâàíû äëÿ òîðãîâëè.
// Òîðãîâëÿ ñ èñïîëüçîâàíèåì ïàòòåðíà "Ïðèçðàê" ïî ñóòè - òîðãîâëÿ
// ïðîòèâ òðåíäà.
// -----
delta=15; level=50;
max1=0; max2=0; max3=0; tmax1=0; tmax2=0; tmax3=0;
min1=0; min2=0; min3=0; tmin1=0; tmin2=0; tmin3=0;
// -----
GhostBuffer[shift]=EMPTY_VALUE;
// îïðåäåëåíèå ìàêñèìóìîâ
if (up>=6) for(a=0;a<=17;a++)
{
if (slowCCI[a]<=slowCCI[a+1] && slowCCI[a+1]>=slowCCI[a+2])
{
if (max2!=0 && max3==0) max3=slowCCI[a+1];
if (max1!=0 && max2==0) max2=slowCCI[a+1];
if (max1==0) max1=slowCCI[a+1];
}
}
// îïðåäåëåíèå ìèíèìóìîâ
if (dn>=6) for(a=0;a<=17;a++)
{
if (slowCCI[a]>=slowCCI[a+1] && slowCCI[a+1]<=slowCCI[a+2])
{
if (min2!=0 && min3==0) min3=slowCCI[a+1];
if (min1!=0 && min2==0) min2=slowCCI[a+1];
if (min1==0) min1=slowCCI[a+1];
}
}
// Ghost â íèñõîäÿùåì òðåíäå
if (dn>=6 &&
min3!=0 && min1>min2 && min3>min2+delta && min1<0 &&
slowCCI[0]-delta>min1 && slowCCI[0]>slowCCI[1] &&
/* min3<0 && max1<=0 && max1>=-level && max2<=level && max2>=-level */
!(slowCCI[1]-delta>min1))
{
GhostBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// Ghost â âîñõîäÿùåì òðåíäå
if (up>=6 &&
max3!=0 && max1<max2 && max3<max2-delta && max1>0 &&
slowCCI[0]+delta<max1 && slowCCI[0]<slowCCI[1] &&
/* max3>0 && min1<=level && min1>=0 && min2<=level && min2>=-level */
!(slowCCI[1]+delta<max1))
{
GhostBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
// Ïàòòåðí ¹ 6 - Ðàçâîðîòíàÿ äèâåðãåíöèÿ Woodies CCI (Rev Diver)
// -----------------------------------------------------------
// Ðàçâîðîòíàÿ äèâåðãåíöèÿ Woodies CCI (Rev Diver) - î÷åíü ïðîñòîé
// ïàòòåðí òîðãîâëè ïî òðåíäó, êîòîðûé îïðåäåëÿåòñÿ äâóìÿ
// îòñêîêàìè CCI, ïîñëåäíèé èç êîòîðûõ íàõîäèòñÿ áëèæå ê íóëåâîé ëèíèè.
// Ïîä ñëîâîì îòñêîê ìû ïîäðàçóìåâàåì ïèêè è âïàäèíû, îáðàçóåìûå
// äâèæåíèåì CCI ââåðõ è âíèç. Ìû ãîâîðèì âíóòðåííèå îòñêîêè,
// èìåÿ â âèäó ïèêè è âïàäèíû, êîòîðûå ðàñïîëîæåíû áëèæå ê íóëåâîé ëèíèè.
// Ìû íèêîãäà íå èñïîëüçóåì ýêñòðåìóìû, ÷òîáû îïðåäåëèòü ïàòòåðí Rev Diver.
// ----
// Ñëåäóþùèå äâà ïðàâèëà - ýòî âñå, ÷òî íåîáõîäèìî äëÿ îïðåäåëåíèÿ
// ïàòòåðíà Rev Diver:
// * Rev Diver íà ïîêóïêó - CCI âûøå íóëåâîé ëèíèè â òå÷åíèå ïîñëåäíèõ
// 6 è áîëåå áàðîâ, äâà èç êîòîðûõ - ïîíèæàþùèåñÿ ïèêîâûå âïàäèíû
// * Rev Diver íà ïðîäàæó - CCI íèæå íóëåâîé ëèíèè â òå÷åíèå ïîñëåäíèõ
// 6 è áîëåå áàðîâ, äâà èç êîòîðûõ - ïîâûøàþùèåñÿ ïèêè ê íóëåâîé ëèíèè
// ----
// Ïàòòåðí "Ðàçâîðîòíàÿ äèâåðãåíöèÿ" - ïàòòåðí òîðãîâëè ïî òðåíäó.
// Âû ìîæåòå îáúåäèíèòü òîðãîâëþ ñ èñïîëüçîâàíèåì Rev Diver ñ ïàòòåðíàìè
// "Îòñêîê îò íóëåâîé ëèíèè (ZLR)" èëè "Ïðîáîé ëèíèè òðåíäà (TLB)"
// äëÿ óâåðåííîñòè è ïîëó÷åíèÿ áîëüøåé ïðèáûëüíîñòè ñäåëêè. Âû ïðàêòè÷åñêè
// âñåãäà áóäåòå íàõîäèòü ñî÷åòàíèå ïàòòåðíà ZLR ñ ïàòòåðíîì Rev Diver.
// Ôàêòè÷åñêè ó Âàñ îáû÷íî áóäåò äâà ïàòòåðíà ZLR, êîòîðûå îáðàçóþò Rev Diver,
// òàê êàê îáû÷íî ïèêè èëè âïàäèíû îáðàçóþòñÿ â ïðåäåëàõ +/-100 øêàëû CCI.
// Âíóòðåííèå ïèêè èëè âïàäèíû ôàêòè÷åñêè ïðåäñòàâëÿþò ïàòòåðí CCI ZLR.
// Ïîñìîòðèòå ãðàôèêè âíèìàòåëüíî, è Âû óâèäèòå èõ îáà íà êàæäîì ãðàôèêå.
// ----
delta=20; level=70;
// ----
max1=0; max2=0; tmax1=0; tmax2=0;
min1=0; min2=0; tmin1=0; tmin2=0;
// -----
RevdevBuffer[shift]=EMPTY_VALUE;
// îïðåäåëåíèå ìàêñèìóìîâ
if (dn>=6) for(a=0;a<=17;a++)
{
if (slowCCI[a]<=slowCCI[a+1] && slowCCI[a+1]>=slowCCI[a+2])
{
if (max1!=0 && tmax1<3 && max2==0)
{
max2=slowCCI[a+1];
tmax2=a+1;
}
if (max1==0)
{
max1=slowCCI[a+1];
tmax1=a+1;
}
}
}
// îïðåäåëåíèå ìèíèìóìîâ
if (up>=6) for(a=0;a<=17;a++)
{
if (slowCCI[a]>=slowCCI[a+1] && slowCCI[a+1]<=slowCCI[a+2])
{
if (min1!=0 && tmin1<3 && min2==0)
{
min2=slowCCI[a+1];
tmin2=a+1;
}
if (min1==0)
{
min1=slowCCI[a+1];
tmin1=a+1;
}
}
}
// Revdiv â íèñõîäÿùåì òðåíäå
if (dn>=6 &&
max1<=0 && max2!=0 && max1>max2 && max1>=-level && tmax2-tmax1>=3 &&
/* max2<=level && max2>=-level && */
slowCCI[0]+delta<max1 && slowCCI[0]<slowCCI[1] && !(slowCCI[1]+delta<max1) )
{
RevdevBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
// Revdiv â âîñõîäÿùåì òðåíäå
if (up>=6 &&
min1>=0 && min2!=0 && min1<min2 && min1<=level && tmin2-tmin1>=3 &&
/* pmn2<=level && pmn2>=-level && */
slowCCI[0]-delta>min1 && slowCCI[0]>slowCCI[1] && !(slowCCI[1]-delta>min1) )
{
RevdevBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// Ïàòòåðí ¹ 7 - Ýêñòðåìàëüíûé Êðþê (HFE)
// -----------------------------------------------------------
// Ýòîò ïàòòåðí ôîðìèðóåòñÿ, êîãäà CCI óõîäèò çà ïðåäåëû +/-200,
// à çàòåì ðàçâîðà÷èâàåòñÿ íàçàä ê íóëåâîé ëèíèè. Ýòà - î÷åíü
// òðóäíûé ñïîñîá òîðãîâëè. Ïàòòåðí HFE ÿâëÿåòñÿ òàêæå îäíèì èç
// Woodies CCI ñèãíàëîâ âûõîäà.
// ----
// Òîðãîâëÿ ïî ýòîìó ïàòòåðíó ïðîèñõîäèò î÷åíü áûñòðî. Êàê òîëüêî
// êðþê ðàçâîðà÷èâàåòñÿ íàçàä ê íóëåâîé ëèíèè, âõîäèòå. Óñòàíîâèòå
// áëèçêèå îðäåðà ñòîï-ëîññ ñðàçó æå ïðè âõîäå â ðûíîê, ïîñêîëüêó
// òîðãîâûé ñèãíàë ìîæåò ðàçâåðíóòüñÿ î÷åíü áûñòðî. Êàê òîëüêî
// ïîÿâèëñÿ ñèãíàë ê âûõîäó - âûõîäèòå íåìåäëåííî.
// Òîðãîâëÿ áóäåò îñòàíàâëèâàòüñÿ ÷àñòî, è ýòî ìîæåò ñëó÷èòüñÿ,
// äàæå åñëè íåò CCI ñèãíàëà íà âûõîä. Âåðîÿòíîñòü óñïåøíîé
// òîðãîâëè ñîñòàâëÿåò ïðèáëèçèòåëüíî 50%, åñëè òîðãîâàòü ïðè
// êàæäîì ñèãíàëå HFE. Îäíàêî ïîòåíöèàëüíàÿ ïðèáûëü áóäåò áîëüøå
// óáûòêîâ, åñëè Âû áóäåòå èñïîëüçîâàòü áëèçêèå ñòîï-ëîññ îðäåðà.
// Òîðãîâëÿ ïðè ðàçâîðîòå îò ýêñòðåìóìîâ ïî ñóòè ÿâëÿåòñÿ
// ïðîòèâîòðåíäîâîé, ïîýòîìó ñ îñòîðîæíîñòüþ îòíîñèòåñòü ê
// ýòîìó ïàòòåðíó.
// ----
// Äëÿ áîëüøåé ýôôåêòèâíîñòè Âû ìîæåòå îáúåäèíèòü òîðãîâëþ ïî
// HFE-ïàòòåðíó ñ ïðîðûâîì ëèíèè òðåíäà èëè ñ ïåðåñå÷åíèåì CCI
// óðîâíÿ +/-100, êîòîðûå ÿâëÿþòñÿ ñèãíàëàìè ïîäòâåðæäåíèÿ.
// ----
delta=10; level=200;
HooksBuffer[shift]=EMPTY_VALUE;
// HFE â íèñõîäÿùåì òðåíäå
if (dn>=6 &&
slowCCI[1]<=-level && slowCCI[0]>-level && slowCCI[1]<slowCCI[0]-delta)
{
HooksBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// HFE âîñõîäÿùåì òðåíäå
if (up>=6 &&
slowCCI[1]>=level && slowCCI[0]<level && slowCCI[1]>slowCCI[0]-delta)
{
HooksBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
// Ñèãíàë íà âûõîä
// -----------------------------------------------------------
// 1. Ðàçâîðîò (CCI(14) îáðàçóåò êðþê) èëè ïëîñêîå äâèæåíèå CCI
// 2. Ïðîáîé CCI ëèíèè òðåíäà (TLB)
// 3. CCI(6) ïåðåñåêàåò CCI(14) âîâíóòðü
// 4. CCI ïåðåñåêàåò íóëåâóþ ëèíèþ (ZLC).
// 5. Êîãäà CCI 14 îáðàçóåò êðþê îêîëî óðîâíÿ +/-200 èëè çà íèì
// 6. CCI (áåç äâèæåíèÿ íåò óñïåõà)
// -----------------------------------------------------------
// 1. Ðàçâîðîò (CCI(14) îáðàçóåò êðþê) èëè ïëîñêîå äâèæåíèå CCI
if (HooksBuffer[shift]!=EMPTY_VALUE)
{
if (up>=6)
{
ExitBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
if (dn>=6)
{
ExitBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
}
// 2. Ïðîáîé CCI ëèíèè òðåíäà (ïðîòèâ òðåíäà)
if (TlbBuffer[shift]!=EMPTY_VALUE)
{
if (up>=6 && TlbBuffer[shift]>High[shift])
{
ExitBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
if (dn>=6 && TlbBuffer[shift]<Low[shift])
{
ExitBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
}
/*
// 3. CCI(6) ïåðåñåêàåò CCI(14) âîâíóòðü
if (up>=6 && fastCCI[1]>=slowCCI[1] && fastCCI[0]<=slowCCI[0])
{
ExitBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
if (dn>=6 && TlbBuffer[shift]<Low[shift])
{
ExitBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
} */
/*
delta=10; level=100;
// ----
ExitBuffer[shift]=EMPTY_VALUE;
min1=0; max1=0; // çíà÷åíèÿ ìèí/ìàõ
// Îïðåäåëåíèå ìèí/ìàêñ è ïîñòðîåíèå ëèíèè òðåíäà
for (a=0;a<=17;a++)
{
// îïðåäåëåíèå ìàêñèìóìîâ
if (slowCCI[a]<=slowCCI[a+1] && slowCCI[a+1]>=slowCCI[a+2])
{
if (max1==0) max1=slowCCI[a+1];
}
// îïðåäåëåíèå ìèíèìóìîâ
if (slowCCI[a]>=slowCCI[a+1] && slowCCI[a+1]<=slowCCI[a+2])
{
if (min1==0) min1=slowCCI[a+1];
}
}
// âûõîä â íèñõîäÿùåì òðåíäå
if (min1!=0 && slowCCI[0]-delta>min1 && !(slowCCI[1]-delta>min1) && MathAbs(slowCCI[0])>level)
{
ExitBuffer[shift]=Low[shift]-dpnt*Point;
dpnt=dpnt+5;
}
// âûõîä â âîñõîäÿùåì òðåíäå
if (max1!=0 && slowCCI[0]+delta<max1 && !(slowCCI[1]+delta<max1) && MathAbs(slowCCI[0])>level)
{
ExitBuffer[shift]=High[shift]+upnt*Point;
upnt=upnt+5;
}
*/
}
return(0);
}
//+------------------------------------------------------------------+
Comments