Simple Coding Help - No Promise.

vijayanscbe

Well-Known Member
Originally Posted by Help_Mee View Post
Hi,
I want to ask question with a
lets say,
today is tuesday ..we seeing crude oil chart on 5 minute timeframe .. i only trade when there's shooting star.and there's no shooting star on 5 minute timeframe,( current timeframe that is on my chart) As per his rule he only trade when there's shooting star,but there's shooting star on 23 minute timeframe. but he don't know there's shooting star.

I need an afl , which can output timeframe of candle pattern.

I simplied question, i guess it's clear.

shootingstar = (((H-L)>4*(O-C)) AND ((H-C)/(.001+H-L)>= 0.75) AND ((H-O)/(.001+H-L)>= 0.75));

Thank you
whats your min max timeframe, for example from 1min TF to 30min TF .
 

vijayanscbe

Well-Known Member
I use following code for BB.

mid = WMA( C, Period );
sd = StDev( C, Period );
Top = mid + Width * sd;
Bot = mid - Width * sd;

I want pale green color for Bot for Cond1 ,Green color for Cond2 and DarkOliveGreen for Cond3.

I want Pink color for Top for Cond1 ,Red color for Cond2 and DarkRed for Cond3.

pl. help
Try to add below code with proper modification for cond1,2,3.
colorbot = IIf(cond1 , colorPaleGreen , IIf(cond2, colorGreen , colorDarkOliveGreen));
colortop = IIf(cond1 , colorPink , IIf(cond2 , colorRed ,colorDarkRed));
Plot(bot,"",colorbot,styleLine);
Plot(top,"",colortop,styleLine);
 
Code:
_SECTION_BEGIN("Candle Identification");
	Plot(C,"",1,64);
	O1 = Ref(O,-1);O2 = Ref(O,-2);
	H1 = Ref(H,-1);H2 = Ref(H,-2);
	L1 = Ref(L,-1);L2 = Ref(L,-2);
	C1 = Ref(C,-1);C2 = Ref(C,-2);
	function CandlePattern(P) {
		global PatternName;
		if(P == 0) {
			PatternName = "NearDoji"; Pv = (abs(O-C)<= ((H-L)*0.1));
		}
		else if(P == 1) { 
			PatternName = "BlackCandle"; Pv = (O>C);
		}
		else if(P == 2) {
			PatternName = "LongBlackCandle"; Pv = (O>C AND	(O-C)/(.001+H-L)>.6);
		}
		else if(P == 3) {
			PatternName = "SmallBlackCandle"; Pv = ((O>C) AND	((H-L)>(3*(O-C))));
		}
		else if(P == 4) { 
			PatternName = "WhiteCandle"; Pv = (C>O);
		}
		else if(P == 5) { 
			PatternName = "LongWhiteCandle"; Pv = ((C>O) AND	((C-O)/(.001+H-L)>.6)); 
		}
		else if(P == 6) { 
			PatternName = "SmallWhiteCandle"; Pv = ((C>O) AND	((H-L)>(3*(C-O)))); 
		}
		else if(P == 7) { 
			PatternName = "BlackMaubozu"; Pv = (O>C AND H==O AND	C==L); 
		}
		else if(P == 8) { 
			PatternName = "WhiteMaubozu"; Pv = (C>O AND H==C AND	O==L);
		}
		else if(P == 9) {
			PatternName = "BlackClosingMarubozu"; Pv = (O>C AND	C==L); 
		}
		else if(P == 10) { 
			PatternName = "WhiteClosingMarubozu"; Pv = (C>O AND	C==H);
		}
		else if(P == 11) { 
			PatternName = "BlackOpeningMarubozu"; Pv = (O>C AND	O==H); 
		}
		else if(P == 12) {
			PatternName = "WhiteOpeningMarubozu"; Pv = (C>O AND	O==L); 
		}
		else if(P == 13) { 
			PatternName = "HangingMan"; Pv = (((H-L)>4*(O-C)) AND	((C-L)/(.001+H-L)>= 0.75) AND ((O-L)/(.001+H-L)>= 0.75));
		}
		else if(P == 14) { 
			PatternName = "Hammer"; Pv = (((H-L)>3*(O-C)) AND	((C-L)/(.001+H-L)>0.6) AND ((O-L)/(.001+H-L)>0.6)); 
		}
		else if(P == 15) { 
			PatternName = "InvertedHammer"; Pv = (((H-L)>3*(O-C))	AND ((H-C)/(.001+H-L)>0.6) AND ((H-O)/(.001+H-L)>0.6)); 
		}
		else if(P == 16) { 
			PatternName = "ShootingStar"; Pv = (((H-L)>4*(O-C))	AND ((H-C)/(.001+H-L)>= 0.75) AND ((H-O)/(.001+H-L)>= 0.75));
		}
		else if(P == 17) { 
			PatternName = "BlackSpinningTop"; Pv = ((O>C) AND	((H-L)>(3*(O-C))) AND (((H-O)/(.001+H-L))<.4) AND	(((C-L)/(.001+H-L))<.4)); 
		}
		else if(P == 18) { 
			PatternName = "WhiteSpinningTop"; Pv = ((C>O) AND	((H-L)>(3*(C-O))) AND (((H-C)/(.001+H-L))<.4) AND	(((O-L)/(.001+H-L))<.4));
		}
		else if(P == 19) {
			PatternName = "BearishAbandonedBaby"; Pv = ((C1 == O1)	AND (C2>O2) AND (O>C) AND (L1>H2) AND (L1>H));
		}
		else if(P == 20) { 
			PatternName = "BearishEveningDojiStar"; Pv = ((C2>O2)	AND ((C2-O2)/(.001+H2-L2)>.6) AND (C2<O1) AND (C1>O1) AND	((H1-L1)>(3*(C1-O1))) AND (O>C) AND (O<O1)); 
		}
		else if(P == 21) { 
			PatternName = "DarkCloudCover"; Pv = (C1>O1 AND	((C1+O1)/2)>C AND O>C AND O>C1 AND C>O1 AND (O-C)/(.001+(H-L)>0.6)); 
		}
		else if(P == 22) { 
			PatternName = "BearishEngulfing"; Pv = ((C1>O1) AND	(O>C) AND (O>= C1) AND (O1>= C) AND ((O-C)>(C1-O1))); 
		}
		else if(P == 23) { 
			PatternName = "ThreeOutsideDownPattern"; Pv = ((C2>O2)	AND (O1>C1) AND (O1>= C2) AND (O2>= C1) AND ((O1-C1)>(C2-O2)) AND (O>C) AND	(C<C1)); 
		}
		else if(P == 24) { 
			PatternName = "BullishAbandonedBaby"; Pv = ((C1 == O1)	AND (O2>C2) AND (C>O) AND (L2>H1) AND (L>H1)); 
		}
		else if(P == 25) {
			PatternName = "BullishMorningDojiStar"; Pv = ((O2>C2)	AND ((O2-C2)/(.001+H2-L2)>.6) AND (C2>O1) AND (O1>C1) AND	((H1-L1)>(3*(C1-O1))) AND (C>O) AND (O>O1)); 
		}
		else if(P == 26) {
			PatternName = "BullishEngulfing"; Pv = ((O1>C1) AND	(C>O) AND (C>= O1) AND (C1>= O) AND ((C-O)>(O1-C1)));
		}
		else if(P == 27) { 
			PatternName = "ThreeOutsideUpPattern"; Pv = ((O2>C2)	AND (C1>O1) AND (C1>= O2) AND (C2>= O1) AND ((C1-O1)>(O2-C2)) AND (C>O) AND	(C>C1)); 
		}
		else if(P == 28) { 
			PatternName = "BullishHarami"; Pv = ((O1>C1) AND (C>O)	AND (C<= O1) AND (C1<= O) AND ((C-O)<(O1-C1))); 
		}
		else if(P == 29) { 
			PatternName = "ThreeInsideUpPattern"; Pv = ((O2>C2)	AND (C1>O1) AND (C1<= O2) AND (C2<= O1) AND ((C1-O1)<(O2-C2)) AND (C>O) AND	(C>C1) AND (O>O1)); 
		}
		else if(P == 30) {
			PatternName = "PiercingLine"; Pv = ((C1<O1) AND	(((O1+C1)/2)<C) AND (O<C) AND (O<C1) AND (C<O1) AND	((C-O)/(.001+(H-L))>0.6)); 
		}
		else if(P == 31) {
			PatternName = "BearishHarami"; Pv = ((C1>O1) AND (O>C)	AND (O<= C1) AND (O1<= C) AND ((O-C)<(C1-O1)));
		}
		else if(P == 32) { 
			PatternName = "ThreeInsideDownPattern"; Pv = ((C2>O2)	AND (O1>C1) AND (O1<= C2) AND (O2<= C1) AND ((O1-C1)<(C2-O2)) AND (O>C) AND	(C<C1) AND (O<O1));
		}
		else if(P == 33) { 
			PatternName = "ThreeWhiteSoldiers"; Pv = (C>O*1.01)	AND (C1>O1*1.01) AND (C2>O2*1.01) AND (C>C1) AND (C1>C2) AND (O<C1) AND	(O>O1) AND (O1<C2) AND (O1>O2) AND (((H-C)/(H-L))<.2) AND	(((H1-C1)/(H1-L1))<.2) AND (((H2-C2)/(H2-L2))<.2); 
		}
		else if(P == 34) { 
			PatternName = "DarkCloudCover"; Pv = (C1>O1*1.01) AND	(O>C) AND (O>H1) AND (C>O1) AND (((C1+O1)/2)>C) AND (C>O1) AND	(MA(C,13)-Ref(MA(C,13),-4)>0);
		}
		else if(P == 35) { 
			PatternName = "ThreeBlackCrows"; Pv = (O>C*1.01) AND	(O1>C1*1.01) AND (O2>C2*1.01) AND (C<C1) AND (C1<C2) AND (O>C1) AND (O<O1)	AND (O1>C2) AND (O1<O2) AND (((C-L)/(H-L))<.2) AND (((C1-L1)/(H1-L1))<.2)	AND (((C2-L2)/(H2-L2))<.2); 
		}
		else if(P == 36) {
			PatternName = "doji"; Pv = (O == C); 
		}
		else if(P == 37) { 
			PatternName = "GapUp"; Pv = GapUp(); 
		}
		else if(P == 38) { 
			PatternName = "GapDown"; Pv = GapDown();
		}
		else if(P == 39) { 
			PatternName = "BigGapUp"; Pv = L>1.01*H1;
		}
		else if(P == 40) { 
			PatternName = "BigGapDown"; Pv = H<0.99*L1;
		}
		else if(P == 41) { 
			PatternName = "HugeGapUp"; Pv = L>1.02*H1; 
		}
		else if(P == 42) {
			PatternName = "HugeGapDown"; Pv = H<0.98*L1;
		}
		else if(P == 43) { 
			PatternName = "DoubleGapUp"; Pv = GapUp() AND	Ref(GapUp(),-1); 
		}
		else if(P == 44) {
			PatternName = "DoubleGapDown"; Pv = GapDown() AND	Ref(GapDown(),-1); 
		}
		return Pv;
	}

	PatternNameList = "";
	for(Cp=0; Cp<=44; Cp++)	{
		VarSet("Pattern"+NumToStr(Cp,1.0),CandlePattern(cP));
		PatternNameList = PatternNameList +PatternName+","; 
	}

	BI = BarIndex();
	SelectedBar = SelectedValue(BI) -BI[0];
	//Selectedbar = Status("lastvisiblebar")-1;
	PStr="";
	for(Cp=0; Cp<=44; Cp++)	{
		Temp = VarGet("Pattern"+NumToStr(Cp,1.0));
		if(temp[SelectedBar]) Pstr=Pstr+"#"+NumToStr(Cp,1.0)+" - "+StrExtract(PatternNameList,Cp)+"\n";
	}

	Title = Name() +" {" +Date()+  "} " + "Open: "+ O + " High: "+ H+" Low: "+L +" Close: "+C+"\nCandleStick Analysis-\n"+ EncodeColor(colorGreen)+Pstr;
_SECTION_END();

//~manoj
Hi,
it's just pattern recognition , not output with timeframe among timerange.

Thank you
 

Snake.Head

Well-Known Member
I have modifed this code bit to get amibroker data to Ninjatrader format
I getting error in ln42 that 3rd last line
Saying Syntax error,unexpected ')'.Is there senucolon missing at the end of the previous line?

Solved by removing } extra at end :p
//
//------------------------------------------------------------------------------


/*
Export intraday and EOD data to TXT files
One file for each stock
In the first line insert the directory you want to save them to, make sure the directory exists
Select your charts to export with the "Apply to" filter in AA window
Select the timeframe period you want to save as using the AA "Settings"
Press Scan button
by Graham Kavanagh 05 Feb 2004
*/

fh = fopen( "C:\\OHLC"+Name()+".txt", "a");
if( fh )
{
y = Year();
m = Month();
d = Day();
r = Hour();
e = Minute();
s=Second();

for( i = 0; i < BarCount; i++ )

for( i = 0; i < BarCount; i++ )
{
//fputs( Name() + "," , fh );
ds = StrFormat("%02.0f%02.0f%02.0f ",y[ i ], m[ i ], d[ i ] );

fputs( ds, fh );

ts = StrFormat("%02.0f%02.0f%02.0f;",r[ i ],e[ i ],s[ i ]);

fputs( ts, fh );
qs = StrFormat("%.2f;%.2f;%.2f;%.2f;%.0f\n",O[ i ],H[ i ],L[ i ],C[ i ],V[ i ] );

fputs( qs, fh );
}
fclose( fh );
}
}
 
Last edited:
Buy signal only once for each day

Hello friends,

I am new to amibroker and was trying my luck.
I am stuck in a problem. I Want to calculate the first buy signal for the day then stop the new occuring buy signal for the day.How can i do that??

Any help is Appreciated!!

Thanks.
 

Similar threads