[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] Re: Candle identification for Selected bar



PureBytes Links

Trading Reference Links

Just Drag and Drop it on top of your main chart. You may have to adjust the
Titel statement...
herman
  -----Original Message-----
  From: firehorse888uk [mailto:firehorse888uk@xxxxxxxxxxx]
  Sent: Saturday, September 25, 2004 7:25 AM
  To: amibroker@xxxxxxxxxxxxxxx
  Subject: [amibroker] Re: Candle identification for Selected bar


  Hi,

  100% correct.

  I had cut and pasted from my email program.
  When I did it from the browser, it was fine.

  Now I have another chart below the main price chart with all the
candlestick formations on the lefthand side.

  I put the code in the main price formula, but the names of the candles
don't appear as the 'title', which I think is the name of the ticker?

  Is there anyway to tweak the code so that I can have the names of the
candlesticks on the main price chart?

  Many thanks.

  --- In amibroker@xxxxxxxxxxxxxxx, "Herman van den Bergen" <psytek@xxxx>
wrote:
  > It is probably a linewrap problem or a missed character during copy. The
  > code works at my end... without seeing your code it is hard to tell what
is
  > wrong...
  >
  > herman
  >   -----Original Message-----
  >   From: firehorse888uk [mailto:firehorse888uk@x...]
  >   Sent: Saturday, September 25, 2004 4:43 AM
  >   To: amibroker@xxxxxxxxxxxxxxx
  >   Subject: [amibroker] Re: Candle identification for Selected bar
  >
  >
  >   Hi,
  >
  >   The code below looks wonderful ... but I'm still very new to
amibroker. I
  > tried to cut and paste into the existing price indicator but it comes up
  > with
  >   ==================
  >   Line 6, Column 1:
  >   L1 = Ref(L,-1);L2 = Ref(L,-2);
  >
  >   C1 = Ref(C,-1);C2 = Ref(C,-2);
  >
  >   function CandlePattern(P)
  >
  >
  >   ^
  >
  >   Error 23.
  >   Syntax error
  >   ===============
  >   I also tried creating a new custom indicator and the same thing
happens.
  > Can someone help me to get the code working. I'm sure it's simple but I
  > don't know how.
  >
  >   Thanks
  >
  >
  >
  >   --- In amibroker@xxxxxxxxxxxxxxx, "Herman van den Bergen"
<psytek@xxxx>
  > wrote:
  >   > Somebody asked me to modify the candle code posted earlier so that
it
  > would
  >   > identify candle patterns for the selected bar, see code below. The
  >   > CandlePattern() was posted before and is just repeated to make the
code
  >   > functional. The added pattern extraction loops are at the bottom of
the
  > code
  >   > (watch for line wraps).
  >   >
  >   > best regards,
  >   > herman.
  >   >
  >   > 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+",";
  >   >       }
  >   >
  >   > SelectedBar = SelectedValue(BarIndex());
  >   > 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";
  >   >       }
  >   >
  >   > Plot(C,"Close",1,64);
  >   > Title = Pstr;
  >
  >
  >
  >   Check AmiBroker web page at:
  >   http://www.amibroker.com/
  >
  >   Check group FAQ at:
  > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
  >
  >
  >         Yahoo! Groups Sponsor
  >               ADVERTISEMENT
  >
  >
  >
  >
  >
  > ------------------------------------------------------------------------
----
  > --
  >   Yahoo! Groups Links
  >
  >     a.. To visit your group on the web, go to:
  >     http://groups.yahoo.com/group/amibroker/
  >
  >     b.. To unsubscribe from this group, send an email to:
  >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
  >
  >     c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service.
  >
  >
  >
  > [Non-text portions of this message have been removed]



  Check AmiBroker web page at:
  http://www.amibroker.com/

  Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html


        Yahoo! Groups Sponsor
              ADVERTISEMENT





----------------------------------------------------------------------------
--
  Yahoo! Groups Links

    a.. To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

    b.. To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

    c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.



[Non-text portions of this message have been removed]



------------------------ Yahoo! Groups Sponsor --------------------~--> 
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/