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

RE: [amibroker] Candle identification for Selected bar



PureBytes Links

Trading Reference Links

Hello Corey,

I don't use candles anymore, this code was written some time ago when i was
exploring EOD candles. The definitions are just a Random collection from
what I had on my computer and what I found on the Internet.

best regards,
herman.


  -----Original Message-----
  From: Corey Saxe [mailto:res1wgwl@xxxxxxxxxxx]
  Sent: Saturday, September 25, 2004 11:14 AM
  To: amibroker@xxxxxxxxxxxxxxx
  Subject: Re: [amibroker] Candle identification for Selected bar


  Hi Herman,

  Both P=34 and P=21 refer to DarkCloudCover.
  Which do you prefer?


  Thanks,
  Corey Saxe


    ----- Original Message -----
    From: Herman van den Bergen
    To: AmiBroker YahooGroups
    Sent: Saturday, September 25, 2004 12:28 AM
    Subject: [amibroker] Candle identification for Selected bar


    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/