Professional Documents
Culture Documents
Patterns Wave
Patterns Wave
WavePattern=ParamToggle("Wave","No|Yes",0);
if(WavePattern)
bi = BarIndex();
sbi = SelectedValue( bi );
GraphXSpace = 2;
upshift = 15;
else
_SECTION_END();
_SECTION_BEGIN("MACD Fill");
PeriodEMA = 13;
MACDIndicatorRange = 50;
Timeframe = Interval(2);
VolumeFilter = 0;
OpenPositions = 10;
ATRPeriod = 5;
InitialCapital = 100000;
scHistMax = LastValue(HHV(HistInd,
scHistMin = LastValue(LLV(HistInd,
_SECTION_END();
_SECTION_BEGIN("Candle Detail");
Candletype=ParamList("Candle Type","Candle|Haikin",1);
Prd1=Param("ATR Period",4,1,20,1);
Prd2=Param("Look Back",8,1,20,1);
if(Candletype=="Candle")
else if(Candletype=="Haikin")
HaClose = (O+H+L+C)/4;
HaClose = (O+H+L+C)/4;
BrightGreen=HHV(LLV(L,Prd1)+ATR(Prd1),Prd2);
BrightRed=LLV(HHV(H,Prd1)-ATR(Prd1),Prd2);
_SECTION_END();
_SECTION_BEGIN("Guppy");
Guppy=ParamToggle("Guyyp","No|Yes",0);
if(Guppy)
_SECTION_END();
_SECTION_BEGIN("Support-Resistance");
SupRes=ParamToggle("Sup-Res","No|Yes",1);
if(SupRes)
MaxGraph = 12;
BuyOffSet = SupResA;//Optimize("BuyOffSet",18,15,20,1);
SellOffset = BuyOffSet;//Optimize("SellOffset",2,2,14,2);
BuyATRPeriod = 2;//Optimize("BuyATRPeriod",2,2,5,1);
SellATRPeriod = BuyATRPeriod;//Optimize("SellATRPeriod",4,2,11,2);
ATRMultiplier = 0.5;//Optimize("ATRMultiplier",1,0.7,1.25,.05);
nn=SupResB;
mmm=100;
CI=(TYP-MA(TYP,14))/(0.015*StDev(TYP,14));
CCCI=EMA(CI,5)+mmm;
Hh=HHV(H,nn);
Ll=LLV(L,nn);
MM=(Hh+Ll)/2;
CCCC=EMA(CCCI*(Hh-Ll)/(2*mmm)+Ll,5);
_SECTION_END();
_SECTION_BEGIN("BB");
BBand=ParamToggle("B.Band","No|Yes",0);
if(BBand)
pr1=Param( "Period1",20,0,100,1);
pr2=Param( "Period2",2,0,100,1);
BBT=BBandTop(C,pr1,pr2);
BBB=BBandBot(C,pr1,pr2);
_SECTION_END();
_SECTION_BEGIN("Pivot");
nExploreBarIdx = 0;
nExploreDate = 0;
nCurDateNum = 0;
DN = DateNum();
DT = DateTime();
bTCZLong = False;
bTCZShort = False;
nAnchorPivIdx = 0;
ADX8 = ADX(8);
if(Status("action")==1) {
bDraw = True;
bUseLastVis = 1;
} else {
bDraw = False;
bUseLastVis = False;
bTrace = 1;
nExploreDate = Status("rangetodate");
for (i=LastValue(BarIndex());i>=0;i--) {
nCurDateNum = DN[i];
if (nCurDateNum == nExploreDate) {
nExploreBarIdx = i;
GraphXSpace=7;
if (bDraw) {
aHPivs = H - H;
aLPivs = L - L;
aHPivHighs = H - H;
aLPivLows = L - L;
aHPivIdxs = H - H;
aLPivIdxs = L - L;
aAddedHPivs = H - H;
aAddedLPivs = L - L;
aLegVol = H - H;
aRetrcVol = H - H;
nHPivs = 0;
nLPivs = 0;
lastHPIdx = 0;
lastLPIdx = 0;
lastHPH = 0;
lastLPL = 0;
curPivBarIdx = 0;
nLastVisBar = LastValue(
LastValue(BarIndex())));
curTrend = "";
curTrend = "D";
else
curTrend = "U";
nlastVisBar-i,
nExploreBarIdx-i,
LastValue(BarIndex())-i));
if (curTrend == "U") {
curTrend = "D";
curPivBarIdx = curBar - aLLVBars[curBar];
aLPivs[curPivBarIdx] = 1;
aLPivLows[nLPivs] = L[curPivBarIdx];
aLPivIdxs[nLPivs] = curPivBarIdx;
nLPivs++;
} else {
if (curTrend == "D") {
curTrend = "U";
aHPivs[curPivBarIdx] = 1;
aHPivHighs[nHPivs] = H[curPivBarIdx];
aHPivIdxs[nHPivs] = curPivBarIdx;
nHPivs++;
curBar =
nlastVisBar,
nExploreBarIdx,
LastValue(BarIndex()))
);
if (nHPivs >= 2 AND nLPivs >= 2) {
lastLPIdx = aLPivIdxs[0];
lastLPL = aLPivLows[0];
lastHPIdx = aHPivIdxs[0];
lastHPH = aHPivHighs[0];
nLLVAfterLastPiv = aLLVAfterLastPiv[curBar];
nHHVAfterLastPiv = aHHVAfterLastPiv[curBar];
*/
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
aLPivLows[0] = nLLVAfterLastPiv;
aLPivIdxs[0] = nLLVIdxAfterLastPiv;
nLPivs++;
// -- Test whether to add piv given last piv is high
} else {
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}
aLPivLows[0] = nLLVAfterLastPiv;
aLPivIdxs[0] = nLLVIdxAfterLastPiv;
nLPivs++;
// OR lower highs
/* ****************************************************************
Still finding missed pivot(s). Here, the last piv is a low piv.
**************************************************************** */
} else {
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;
aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)];
aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)];
aHPivHighs[0] = nHHVAfterLastPiv;
aHPivIdxs[0] = nHHVIdxAfterLastPiv;
nHPivs++;
} else {
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;
aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)];
aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)];
aHPivHighs[0] = nHHVAfterLastPiv;
aHPivIdxs[0] = nHHVIdxAfterLastPiv;
nHPivs++;
}
// -- If there are at least two of each
/* ****************************************
***************************************** */
if (bDraw) {
PlotShapes(
PlotShapes(
PlotShapes(
PlotShapes(
PlotShapes(
PlotShapes(
PlotShapes(
/* ****************************************
***************************************** */
risk = 0;
profInc = 0;
nLeg0Pts = 0;
nLeg0Bars = 0;
nLeg0Vol = 0;
nLeg1Pts = 0;
nLeg1Bars = 0;
nLeg1Vol = 0;
nLegBarsDiff = 0;
nRtrc0Pts = 0;
nRtrc0Bars = 0;
nRtrc0Vol = 0;
nRtrc1Pts = 0;
nRtrc1Bars = 0;
nRtrc1Vol = 0;
minRtrc = 0;
maxRtrc = 0;
minLine = 0;
maxLine = 0;
triggerLine = 0;
firstProfitLine = 0;
triggerInc = 0;
triggerPrc = 0;
firstProfitPrc = 0;
retrcPrc = 0;
retrcBar = 0;
retrcBarIdx = 0;
retrcRng = 0;
aRetrcPrc = H-H;
aRetrcPrcBars = H-H;
aRetrcClose = C;
retrcClose = 0;
tcz500 =
(aHPivHighs[0] -
tcz618 =
(aHPivHighs[0] -
tcz786 =
(aHPivHighs[0] -
retrcPrc = aRetrcPrc[curBar];
retrcClose = aRetrcClose[retrcBarIdx];
// -- bTCZLong setup?
bTCZLong = (
// tcz order?
AND
AND
AND
//risk = 0;
tcz500 =
(aHPivHighs[1] -
tcz618 =
(aHPivHighs[0] -
tcz786 =
(aHPivHighs[0] -
retrcPrc = aRetrcPrc[curBar];
aRetrcPrcBars = HHVBars(H, retrcRng);
retrcClose = aRetrcClose[retrcBarIdx];
bTCZShort = (
// tcz order?
AND
AND
AND
);
//risk = 0;
}
// -- Show zone if present
if (bTCZShort OR bTCZLong) {
if (bTCZShort) {
} else {
} else { // bLongSetup
} else {
nRtrc0Pts = aHPivHighs[1] - aLPivLows[0];
if (bShowTCZ) {
Plot(
Plot(
Plot(
// -- if (bShowTCZ)
}
if (bDraw) {
WriteVal(nRtrc1Bars, 2.0);
_SECTION_END();
_SECTION_BEGIN("Title");
_SECTION_END();
dif1=Ref(High,-1)-Ref(Low,-1);
dif2=Ref(High,-2)-Ref(Low,-2);
dif3=Ref(High,-3)-Ref(Low,-3);
dif4=Ref(High,-4)-Ref(Low,-4);
dif5=Ref(High,-5)-Ref(Low,-5);
dif6=Ref(High,-6)-Ref(Low,-6);
dif7=Ref(High,-7)-Ref(Low,-7);
dif8=Ref(High,-8)-Ref(Low,-8);
dif9=Ref(High,-9)-Ref(Low,-9);
dif10=Ref(High,-10)-Ref(Low,-10);
dif11=Ref(High,-11)-Ref(Low,-11);
dif12=Ref(High,-12)-Ref(Low,-12);
dif13=Ref(High,-13)-Ref(Low,-13);
dif14=Ref(High,-14)-Ref(Low,-14);
dif15=Ref(High,-15)-Ref(Low,-15);
Sumdif=(dif+dif1+dif2+dif3+dif4+dif5+dif6+dif7+dif8+dif9+dif10+dif11+dif12+dif13+dif14+dif15)/16;
mp = Param("Multiplier",2,0.25,5,0.25);
Sumdifml=(Sumdif*1);
Sumdifml2=(Sumdif*1.6);
Sumdifml3=(Sumdif*mp);
Betastops=HHV(C,20) - Sumdifml;
Betastops2=HHV(C,15) - Sumdifml2;
//BetastopsO=Ref(L,-1)-sumdifml;
//Plot(Sumdifml,"DifferenceX",3,styleNoLine |styleNoLabel);
//Plot(sumdif,"AvgDifference",25,styleNoLine |styleNoLabel);
//Plot(dif10,"AvgDifference1",26,styleNoLine |styleNoLabel);
_SECTION_END();