Ichimoku Kinko Hyo
#11
...daming dami salamat sa code! May you have higher high gains this year and the years to come! sana at the end of every year lahat ng SMPers panalo... To God be the Glory! Big Grin
====================================
Get a Daily Stock Guide with
TheDailyHINT plus FREE Stock reports here!
Reply
#12
(01-15-2013, 12:48 AM)ippfx Wrote: Here's my version complete with strategy exploration... enjoy!

Code:
_SECTION_BEGIN("Ichimoku Clouds");
/*
    Ichimoku Kinko Hyo
    from the book Ichimoku Clouds by Nicole Elliot
    code by i.am.irvin1@gmail.com (unless otherwise specified)
*/

function OneTick() {
    CurrentPrice = Close[BarCount-1];
    //CurrentPrice = SelectedValue(BarIndex());
    result = 0;
    if (CurrentPrice >=    0.0001 AND CurrentPrice <=    0.0099)    result = 0.0002;
    if (CurrentPrice >=    0.0100 AND CurrentPrice <=    0.2490)    result = 0.0010;
    if (CurrentPrice >=    0.2500 AND CurrentPrice <=    0.4950)    result = 0.0050;
    if (CurrentPrice >=    0.5000 AND CurrentPrice <=    9.9900)    result = 0.0100;
    if (CurrentPrice >=   10.0000 AND CurrentPrice <=   19.9800)    result = 0.0200;
    if (CurrentPrice >=   20.0000 AND CurrentPrice <=   99.9500)    result = 0.0500;
    if (CurrentPrice >=  100.0000 AND CurrentPrice <=  199.9000)    result = 0.1000;
    if (CurrentPrice >=  200.0000 AND CurrentPrice <=  499.8000)    result = 0.2000;
    if (CurrentPrice >=  500.0000 AND CurrentPrice <=  999.5000)    result = 0.5000;
    if (CurrentPrice >= 1000.0000 AND CurrentPrice <= 1999.0000)    result = 1.0000;
    if (CurrentPrice >= 2000.0000 AND CurrentPrice <= 4998.0000)    result = 2.0000;
    if (CurrentPrice >= 5000.0000)                                        result = 5.0000;
    return result;
}

function TickAdjValue(x) {
    result = 0;
    part_integer = int(x);
    part_fraction = frac(x);
    result = part_integer + onetick() * int( round( part_fraction/onetick() ));
    return result;
}


//--- DEFAULT PARAMETERS
periodConv = Param("Conv (Tenkan-sen)", 9);
periodBase = Param("Base (Kijun-sen)", 26);
periodSpanB = Param("Span B (Senkou span B)", 52);
OptPrice = ParamToggle("Plot Price", "No|Yes", 1);
OptPriceStyle = ParamList("Price Chart Style", "Line|Line with Dots|Candlestick|Bars|Heiken Ashi", 0);
//OptColoredPrice = ParamToggle("Colored Price", "No|Yes", 1);


//--- PRICE PLOT
if (OptPrice == 1)
{
    _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

    if (OptPriceStyle == "Line") { PriceStyle = styleLine; }
    if (OptPriceStyle == "Line with Dots") { PriceStyle = styleLine | styleDots; }
    if (OptPriceStyle == "Candlestick") { PriceStyle = styleCandle; }
    if (OptPriceStyle == "Bars") { PriceStyle = styleBar; }
    
    /* colored price
    up = C > O; doji = C == O;
    if (OptColoredPrice) {
        if (PriceStyle == styleCandle) { SetBarFillColor( IIf(up, colorSeaGreen, IIf(doji, colorLightBlue, colorPink))); }
        BarColor = IIf(up, colorDarkGreen, IIf(doji, colorBlue, colorRed));
        Plot( C, "Close", BarColor, styleNoTitle | PriceStyle );
    } else {
        Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | PriceStyle );
    }
    */

    if (OptPriceStyle == "Heiken Ashi") {

        // code from wisestocktrader.com
        HaClose = (O + H + L + C)/4;
        HaOpen = AMA( Ref( HaClose, -1 ), 0.5 );
        HaHigh = Max( H, Max( HaClose, HaOpen ) );
        HaLow = Min( L, Min( HaClose, HaOpen ) );

        PlotOHLC(HaOpen, HaHigh, HaLow, HaClose, "Heiken Ashi", ParamColor("Color", colorBlack), styleNoTitle | styleCandle);
    } else {
        Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | PriceStyle );
    }
}

//--- THE JUICE
CL = TickAdjValue( (HHV(H, periodConv) + LLV(L, periodConv)) / 2 );            // tenkan-sen (conversion line)
BL = TickAdjValue( (HHV(H, periodBase) + LLV(L, periodBase)) / 2 );            // kijun-sen    (base line)
SpanA = TickAdjValue( (CL + BL) / 2 );                                            // senkou span a (leading span a)
SpanB = TickAdjValue( (HHV(H, periodSpanB) + LLV(L, periodSpanB)) / 2 );    // senkou span b    (leading span b)
LagSpan = Price = C;                                                                    // chikou span (lagging span)


//--- CHARTING
// the chart shows the ichimoku component values and its percent distance from the current close

// tenkan-sen
Plot(CL, "TS (CL)", colorBlue);                                                            
Plot(100*(CL-LagSpan)/LagSpan, "%", colorBlue, styleNoDraw | styleNoRescale);

// kijun-sen
Plot(BL, "KS (BL)", colorRed);                                                                
Plot(100*(BL-LagSpan)/LagSpan, "%", colorRed, styleNoDraw | styleNoRescale);

// senkou span a
Plot(SpanA, "SA", ColorRGB(200,200,255), styleLine, Null, Null, periodBase);    
Plot(100*(Ref(SpanA, -periodBase)-LagSpan)/LagSpan, "%", ColorRGB(200,200,255), styleNoDraw | styleNoRescale);

// senkou span b
Plot(SpanB, "SB", colorPink, styleLine | styleThick, Null, Null, periodBase);    
Plot(100*(Ref(SpanB, -periodBase)-LagSpan)/LagSpan, "%", colorPink, styleNoDraw | styleNoRescale);

// amibroker chart by default does not show 30 days past the last bar so we need to plot just in case
// future senkou span a
Plot(SpanA, "FSA", ColorRGB(200,200,255), styleNoDraw);
Plot(100*(SpanA-LagSpan)/LagSpan, "%", ColorRGB(200,200,255), styleNoDraw | styleNoRescale);
Plot(LastValue(SpanA), "", ColorRGB(200,200,255), styleDashed | styleNoLabel, Null, Null, periodBase, 0);

// future senkou span b
Plot(SpanB, "FSB", colorPink, styleNoDraw);
Plot(100*(SpanB-LagSpan)/LagSpan, "%", colorPink, styleNoDraw | styleNoRescale);
Plot(LastValue(SpanB), "", colorPink, styleDashed | styleNoLabel, Null, Null, periodBase, 0);

// chikou span
Plot(LagSpan, "CS (Lag)", colorGreen, styleLine, Null, Null, -periodBase);        
Plot(100*(Ref(C,-periodbase)-LagSpan)/LagSpan, "%", colorGreen, styleNoDraw | styleNoRescale);

// plot +/-5% vertical movement of the chikou span
Plot(LagSpan*1.05, "+5%", colorGreen, styleNoDraw | styleNoRescale);
Plot(LagSpan-(LagSpan*.05), "-5%", colorGreen, styleNoDraw | styleNoRescale);

// kumo cloud
CloudColor = IIf(SpanA > SpanB, ColorRGB(200,200,255), colorPink);                
PlotOHLC(SpanA, SpanA, SpanB, SpanB, "", CloudColor, styleCloud | styleNoTitle | styleNoLabel, Null, Null, periodBase, -1);        // cloud

GraphXSpace = 5;


//--- EXPLORATION
/*
    Ichimoku strategies from the books:
    - Trading with Ichimoku Clouds by Menash Patel
    - Trading Success with the Ichimoku Techniques by David Linton
    code by i.am.irvin1@gmail.com (unless otherwise specified)
*/

OptExpFilter = ParamList("Exploration Filter",
    "None |Ideal Bullish |Ideal Bearish |Strong Bullish TS/KS Crossover |Strong Bearish TS/KS Crossover |Medium Bullish TS/KS Crossover |Basic Bullish TS/KS Crossover |Medium Bearish TS/KS Crossover |Basic Bearish TS/KS Crossover |Bullish CS/Kumo Crossover |Bearish CS/Kumo Crossover |All Bullish Setup |All Bearish Setup ", 0);

OptExpShowComponents = ParamToggle("Show Component Values", "No|Yes", 1);
OptExpShowVolatility = ParamToggle("Show Volatility Values", "No|Yes", 1);
OptExpShowAnalysis = ParamToggle("Show Analysis", "No|Yes", 1);


// Ideal Ichimoku Setup
ideal_ichimoku_bullish =
    ( Low > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( CL > BL ) AND
    ( LagSpan > Ref(High, -periodbase) ) AND
    ( SpanA > SpanB );

ideal_ichimoku_bearish =
    ( High < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( CL < BL ) AND
    ( LagSpan < Ref(Low, -periodbase) ) AND
    ( SpanA < SpanB );


// Tenkan Sen/Kijun Sen Crossover
// taken from ForexAbode School coded by i.am.irvin1@gmail.com
// we only need to use the strong and medium signals

bullish_tsks_crossover_basic = Cross(CL, BL);
bearish_tsks_crossover_basic = Cross(BL, CL);

bullish_tsks_crossover_strong =
    ( Cross(CL, BL) ) AND
    ( Low > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( LagSpan > Ref(High, -periodbase) ) AND
    ( CL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) );

bullish_tsks_crossover_medium =
    ( Cross(CL, BL) ) AND
    ( Low > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( LagSpan > Ref(High, -periodbase) ) AND
    ( CL < Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL < Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( CL > Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL > Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) );

bearish_tsks_crossover_strong =
    ( Cross(CL, BL) ) AND
    ( High < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( LagSpan < Ref(Low, -periodbase) ) AND
    ( CL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) );

bearish_tsks_crossover_medium =
    ( Cross(CL, BL) ) AND
    ( High < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( LagSpan < Ref(Low, -periodbase) ) AND
    ( CL > Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL > Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( CL < Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL < Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) );


/*------------------------------------------------------------------------- temporarily disabled
// Kijun Sen Crossover
bullish_ks_crossover =
    ( Cross(Price, BL) ) AND
    ( CL > BL OR (CL < BL AND CL > Ref(CL, -1) AND BL == Ref(BL, -1)) ) AND
    ( LagSpan > Ref(High, -periodbase) ) AND
    ( SpanB == Ref(SpanB, -1) ) AND
    ( SpanA > SpanB OR (SpanA < SpanB AND SpanA > Ref(SpanA, -1)) ) AND
    ( CL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( LagSpan > Max(Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase)) ) AND
    ( (Price - CL) / ATR(periodconv) < 1.5 ) AND
    ( (Price - BL) / ATR(periodbase) < 1.5 );
    
bearish_ks_crossover =
    ( Cross(BL, Price) ) AND
    ( CL < BL OR (CL > BL AND CL < Ref(CL, -1) AND BL == Ref(BL, -1)) ) AND
    ( LagSpan < Ref(Low, -periodbase) ) AND
    ( SpanB == Ref(SpanB, -1) ) AND
    ( SpanA < SpanB OR (SpanA > SpanB AND SpanA < Ref(SpanA, -1)) ) AND
    ( CL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( LagSpan < Min(Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase)) ) AND
    ( (Price - CL) / ATR(periodconv) < 1.5 ) AND
    ( (Price - BL) / ATR(periodbase) < 1.5 );


// Kumo Cloud Breakout Strategy
bullish_kumo_breakout =
    ( Low > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( CL > BL OR (CL < BL AND CL > Ref(CL, -1) AND BL == Ref(BL, -1)) ) AND
    ( LagSpan > Ref(High, -periodbase) ) AND
    ( LagSpan > Max(Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase)) ) AND
    ( SpanB > Ref(SpanB, -1) OR SpanB == Ref(SpanB, -1) ) AND
    ( SpanA > SpanB OR (SpanA < SpanB AND SpanA > Ref(SpanA, -1)) ) AND
    ( CL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( (Price - CL) / ATR(periodconv) < 1.5 ) AND
    ( (Price - BL) / ATR(periodbase) < 1.5 );

bearish_kumo_breakout =
    ( High < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( CL < BL OR (CL > BL AND CL < Ref(CL, -1) AND BL == Ref(BL, -1)) ) AND
    ( LagSpan < Ref(Low, -periodbase) ) AND
    ( LagSpan < Min(Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase)) ) AND
    ( SpanB < Ref(SpanB, -1) OR SpanB == Ref(SpanB, -1) ) AND
    ( SpanA < SpanB OR (SpanA > SpanB AND SpanA < Ref(SpanA, -1)) ) AND
    ( CL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( BL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ) AND
    ( (Price - CL) / ATR(periodconv) < 1.5 ) AND
    ( (Price - BL) / ATR(periodbase) < 1.5 );

// Future Senkou Crossover Strategy
*/


// Lagging line crossing the cloud
bullish_cskumo_crossover =
    Cross(LagSpan, Max( Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase) ));

bearish_cskumo_crossover =
    Cross(Min( Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase) ), LagSpan);



if (OptExpFilter == "None ")                                 { Filter = 1; }
if (OptExpFilter == "Ideal Bullish " )                     { Filter = ideal_ichimoku_bullish; }
if (OptExpFilter == "Strong Bullish TS/KS Crossover ") { Filter = bullish_tsks_crossover_strong; }
if (OptExpFilter == "Medium Bullish TS/KS Crossover ") { Filter = bullish_tsks_crossover_medium; }
if (OptExpFilter == "Basic Bullish TS/KS Crossover ")     { Filter = bullish_tsks_crossover_basic; }

if (OptExpFilter == "Bullish CS/Kumo Crossover ")         { Filter = bullish_cskumo_crossover; }

if (OptExpFilter == "Ideal Bearish " )                     { Filter = ideal_ichimoku_bearish; }
if (OptExpFilter == "Strong Bearish TS/KS Crossover ") { Filter = bearish_tsks_crossover_strong; }
if (OptExpFilter == "Medium Bearish TS/KS Crossover ") { Filter = bearish_tsks_crossover_medium; }
if (OptExpFilter == "Basic Bearish TS/KS Crossover ")     { Filter = bearish_tsks_crossover_basic; }

if (OptExpFilter == "Bearish CS/Kumo Crossover ")         { Filter = bearish_cskumo_crossover; }

// disable
//if (OptExpFilter == "Bullish KS Crossover ") { Filter = bullish_ks_crossover; }
//if (OptExpFilter == "Bearish KS Crossover ") { Filter = bearish_ks_crossover; }
//if (OptExpFilter == "Bullish Kumo Breakout ") { Filter = bullish_kumo_breakout; }
//if (OptExpFilter == "Bearish Kumo Breakout ") { Filter = bearish_kumo_breakout; }

if (OptExpFilter == "All Bullish Setup ") { Filter =
    ideal_ichimoku_bullish OR
    bullish_tsks_crossover_strong OR
    bullish_tsks_crossover_medium OR
    bullish_tsks_crossover_basic OR
    bullish_cskumo_crossover; }

if (OptExpFilter == "All Bearish Setup ") { Filter =
    ideal_ichimoku_bearish OR
    bearish_tsks_crossover_strong OR
    bearish_tsks_crossover_medium OR
    bearish_tsks_crossover_basic OR
    bearish_cskumo_crossover; }

tempstr = WriteIf(ideal_ichimoku_bullish, "Ideal Bullish",
            WriteIf(bullish_tsks_crossover_basic, "Basic Bullish TS/KS Crossover",
            WriteIf(bullish_tsks_crossover_strong, "Strong Bullish TS/KS Crossover",
            WriteIf(bullish_tsks_crossover_medium, "Medium Bullish TS/KS Crossover",
            WriteIf(bullish_cskumo_crossover, "Bullish CS/Kumo Crossover",
            WriteIf(ideal_ichimoku_bearish, "Ideal Bearish",
            WriteIf(bearish_tsks_crossover_basic, "Basic Bearish TS/KS Crossover",
            WriteIf(bearish_tsks_crossover_strong, "Strong Bearish TS/KS Crossover",
            WriteIf(bearish_tsks_crossover_medium, "Medium Bearish TS/KS Crossover",
            WriteIf(bearish_cskumo_crossover, "Bearish CS/Kumo Crossover",
            ""))))))))));

AddTextColumn(tempstr, "Strategy");

if (OptExpShowComponents) {
    // Ichimoku Components
    AddColumn(CL, "TS");                                AddColumn(100*(CL-LagSpan)/LagSpan, "%");    
    AddColumn(BL, "KS");                                AddColumn(100*(BL-LagSpan)/LagSpan, "%");
    AddColumn(LagSpan, "CS");
    AddColumn(Ref(C, -periodbase), "C-26");        AddColumn(100*(Ref(C,-periodbase)-LagSpan)/LagSpan, "%");
    AddColumn(Ref(SpanA, -periodBase), "SA");        AddColumn(100*(Ref(SpanA, -periodBase)-LagSpan)/LagSpan, "%");
    AddColumn(Ref(SpanB, -periodBase), "SB");        AddColumn(100*(Ref(SpanB, -periodBase)-LagSpan)/LagSpan, "%");
    AddColumn(SpanA, "FSA");                        AddColumn(100*(SpanA-LagSpan)/LagSpan, "%");
    AddColumn(SpanB, "FSB");                        AddColumn(100*(SpanB-LagSpan)/LagSpan, "%");
}

if (OptExpShowVolatility) {
    // Tenkan Sen and Kijun Sen Volatility
    AddColumn(abs(Price - CL) / ATR(periodconv), "TSV");
    AddColumn(ATR(periodconv), "ATR9");
    AddColumn(abs(Price - BL) / ATR(periodbase), "KSV");
    AddColumn(ATR(periodbase), "ATR26");
}

if (OptExpShowAnalysis) {
    // Ichimoku Analysis Exploration (from Menash Patel book)
    // price vs kumo cloud
    AddTextColumn(WriteIf(Low > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)), "Bullish", WriteIf(High < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) ,"Bearish", "Consolidation")), "Price vs Kumo");

    // tenkan sen/kijun sen
    AddTextColumn(WriteIf(CL > BL, "Bullish", WriteIf(CL < BL, "Bearish", "Neutral")), "TS/KS Sentiment");
    //AddTextColumn(WriteIf(abs(Price - CL) / ATR(periodconv) > 1.5, "Far", "Close"), "TS Distance");
    //AddTextColumn(WriteIf(abs(Price - BL) / ATR(periodbase) > 1.5, "Far", "Close"), "KS Distance");
    AddTextColumn(WriteIf(CL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) OR CL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)), "Strong", "Weak"), "TS Strength");
    AddTextColumn(WriteIf(BL > Max(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)) OR BL < Min(Ref(SpanA, -periodbase), Ref(SpanB, -periodbase)), "Strong", "Weak"), "KS Strength");
    AddTextColumn(WriteIf(BL == Ref(BL, -1), "Yes", "No"), "KS in Consolidation?");

    // chikou span
    AddTextColumn(WriteIf(LagSpan > Ref(High, -periodbase), "Bullish", WriteIf(LagSpan < Ref(Low, -periodbase), "Bearish", "Consolidation")), "Chikou Sentiment");
    AddTextColumn(WriteIf(LagSpan > Max(Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase)) OR LagSpan < Min(Ref(SpanA, -2*periodbase), Ref(SpanB, -2*periodbase)), "Strong", "Weak"), "Chikou Strength");
    
    // kumo future
    AddTextColumn(WriteIf(SpanA > SpanB, "Bullish", "Bearish"), "Kumo Sentiment");
    StrongBullish = (SpanA > SpanB) AND (SpanA > Ref(SpanA, -1)) AND (SpanB > Ref(SpanB, -1));
    MediumBullish = (SpanA > SpanB) AND (SpanA > Ref(SpanA, -1)) AND (SpanB == Ref(SpanB, -1));
    WeakBullish = (SpanA > SpanB) AND (SpanA < Ref(SpanA, -1)) AND (SpanB > Ref(SpanB, -1) OR SpanB == Ref(SpanB, -1));
    StrongBearish = (SpanA < SpanB) AND (SpanA < Ref(SpanA, -1)) AND (SpanB < Ref(SpanB, -1));
    MediumBearish = (SpanA < SpanB) AND (SpanA < Ref(SpanA, -1)) AND (SpanB == Ref(SpanB, -1));
    WeakBearish = (SpanA < SpanB) AND (SpanA > Ref(SpanA, -1)) AND (SpanB < Ref(SpanB, -1) OR SpanB == Ref(SpanB, -1));

    FutureKumoStrength = WriteIf(StrongBullish, "Strong Bullish",
                            WriteIf(MediumBullish, "Medium Bullish",
                            WriteIf(WeakBullish, "Weak Bullish",
                            WriteIf(StrongBearish, "Strong Bearish",
                            WriteIf(MediumBearish, "Medium Bearish",
                            WriteIf(WeakBearish, "Weak Bearish", "Flat"))))));
    AddTextColumn(FutureKumoStrength, "Kumo Strength");
}

_SECTION_END();


The values are also tick-adjusted which simply means that the calculation results of the ichimoku components are adjusted to adapt to the minimum price fluctuation per board lot.

Mas madali kasi tingnan ang tamang price levels para di na ako nag ra-round off mentally.

Tongue

salamat sa code idol. B) pang pro talaga. hehe.

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)