Rajandran R Telecom Engineer turned Full-time Derivative Trader. Mostly Trading Nifty, Banknifty, USDINR and High Liquid Stock Derivatives. Trading the Markets Since 2006 onwards. Using Market Profile and Orderflow for more than a decade. Designed and published 100+ open source trading systems on various trading tools. Strongly believe that market understanding and robust trading frameworks are the key to the trading success. Writing about Markets, Trading System Design, Market Sentiment, Trading Softwares & Trading Nuances since 2007 onwards. Author of Marketcalls.in)

Sentimental Dashboard – Amibroker AFL Code

50 sec read

Sentimental Dashboard is added in our live charting section (NSESignals and MCX Signals Section) to measure the strength in the market. Sentimental Dashboard shows 8 historical values for Multiple Timeframes like 15min, Hourly and Daily). And the reading ranges between 0-100. The right most meter indicates the most recent value.

Sentimental
[wp_ad_camp_5]

 

The logic behind the multimeframe sentimental dashboard is nothing but the smoothed hull moving average of RSI. This bring more responsiveness and good in identifying shorter term trend cycles. Suits mostly for a discrete mean reversion traders.

Increasing reading indicates the possibility of market moving in uptrend and decreasing value indicates a possible downtrend. One can adopt 15min to capture very shorter term movements in the markets(short term intraday especially for holding position ranging between 15min – 2 hours). However 60 min sentimental will give more clarity about the trend for any day (This for traders holding their position anywhere ranging from 1 hour – 8 hours). And Daily Sentimental Meter will give more clarity about the carry forwarding positions to next day.

Divergence 2016 – Promo
httpv://www.youtube.com/watch?v=cLkTBA9Ac4w

This sentimental dashboard make sense more for discretionary traders who wants to enter the trend at the earliest and exit closer to the top however it does not benefit much for System Traders.

Sentimental Dashboard – Amibroker AFL Code

Code Compatibility – 5.8+ and above

https://gist.github.com/d13627cad0b2bddc3551

Rajandran R Telecom Engineer turned Full-time Derivative Trader. Mostly Trading Nifty, Banknifty, USDINR and High Liquid Stock Derivatives. Trading the Markets Since 2006 onwards. Using Market Profile and Orderflow for more than a decade. Designed and published 100+ open source trading systems on various trading tools. Strongly believe that market understanding and robust trading frameworks are the key to the trading success. Writing about Markets, Trading System Design, Market Sentiment, Trading Softwares & Trading Nuances since 2007 onwards. Author of Marketcalls.in)

[Live Coding Webinar] Build Your First Trading Bridge for…

In this course, you will be learning to build your own trading bridge using Python. This 60-minute session is perfect for traders, Python enthusiasts,...
Rajandran R
1 min read

[Webinar] Understanding and Mitigating Curve Fitting in System Trading

"Understanding and Mitigating Curve Fitting in System Trading"! This dynamic session aims to equip novice to intermediate traders, quantitative analysts, and financial engineers with...
Rajandran R
1 min read

P-Signal Strategy Long Only Strategy – Amibroker AFL Code

This tutorial provides an overview of the P-Signal reversal strategy, a quantitative trading strategy that utilizes statistical parameters and error functions to generate probabilistic...
Rajandran R
2 min read

13 Replies to “Sentimental Dashboard – Amibroker AFL Code”

      1. You can consider the following code for 5.7

        _SECTION_BEGIN(“Sentimental Dashboard”);

        function jmatrix(timeframe) {
        TimeFrameSet( timeframe ); // switch to required time frame
        rmat = HMA(RSIa((H+L+C+O)/4,5),5);
        TimeFrameRestore(); // restore time frame to original
        return rmat;
        }

        rsx15 = jmatrix(in15Minute);
        rsx60 = jmatrix(inHourly);
        rsxdaily = jmatrix(inDaily);

        Plot(rsx15,”15 mins”,colorRed,styleLine);
        Plot(rsx60,”1 hour”,colorGreen,styleLine);
        Plot(rsxdaily,”Daily”,colorBlue,styleLine);

        _SECTION_END();

        Title = EncodeColor(colorWhite)+ “Sentimental Dashboard” + ” – ” + Name() +
        “\n” + “## 15 Min ::: ” + NumToStr(ref(rsx15, -7),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx15, -6),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx15, -5),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx15, -4),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx15, -3),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx15, -2),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx15, -1),1.2,False) + ” \t ::: ” + NumToStr(rsx15,1.2,False) +
        “\n” + “## 60 Min ::: ” + NumToStr(ref(rsx60, -7),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx60, -6),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx60, -5),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx60, -4),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx60, -3),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx60, -2),1.2,False) + ” \t ::: ” + NumToStr(ref(rsx60, -1),1.2,False) + ” \t ::: ” + NumToStr(rsx60,1.2,False) +
        “\n” + “## Daily ::: ” + NumToStr(ref(rsxdaily, -7),1.2,False) + ” \t ::: ” + NumToStr(ref(rsxdaily, -6),1.2,False) + ” \t ::: ” + NumToStr(ref(rsxdaily, -5),1.2,False) + ” \t ::: ” + NumToStr(ref(rsxdaily, -4),1.2,False) + ” \t ::: ” + NumToStr(ref(rsxdaily, -3),1.2,False) + ” \t ::: ” + NumToStr(ref(rsxdaily, -2),1.2,False) + ” \t ::: ” + NumToStr(ref(rsxdaily, -1),1.2,False) + ” \t ::: ” + NumToStr(rsxdaily,1.2,False)
        ;

        1. THIS CODE IS NOT WORKING FOR VERSION 5.70 ” SYNTAX ERROR, UNEXPECTED $END, EXPECTING ‘)’OR’,’ AT LN 1 COL 16

  1. Thanks a lot for sharing this beautiful code.

    But one small thing which i note is the history value changes with each bar “This look to be constant with your Live signal” any setting change that we need to do?

    1. It is the same code we are running at our livecharting section. Probably you are using continous contracts like NIFTY-I and we use non continuous contracts NIFTY15NOVFUT and so the difference in values.

  2. Can any one make it a loop in afl

    Ydh1= TimeFrameGetPrice( “o”, inDaily,-1);
    Ydh2= TimeFrameGetPrice( “o”, inDaily,-2);
    Ydh3= TimeFrameGetPrice( “o”, inDaily,-3);
    Ydh4= TimeFrameGetPrice( “o”, inDaily,-4);
    Ydh5= TimeFrameGetPrice( “o”, inDaily,-5);
    Ydh6= TimeFrameGetPrice( “o”, inDaily,-6);
    Ydh7= TimeFrameGetPrice( “o”, inDaily,-7);
    Ydh8= TimeFrameGetPrice( “o”, inDaily,-8);
    Ydh9= TimeFrameGetPrice( “o”, inDaily,-9);
    Ydh10= TimeFrameGetPrice( “o”, inDaily,-10);
    Ydh11= TimeFrameGetPrice( “o”, inDaily,-11);
    Ydh12= TimeFrameGetPrice( “o”, inDaily,-12);
    Ydh13= TimeFrameGetPrice( “o”, inDaily,-13);
    Ydh14= TimeFrameGetPrice( “o”, inDaily,-14);
    Ydh15= TimeFrameGetPrice( “o”, inDaily,-15);
    Ydh16= TimeFrameGetPrice( “o”, inDaily,-16);
    Ydh17= TimeFrameGetPrice( “o”, inDaily,-17);
    Ydh18= TimeFrameGetPrice( “o”, inDaily,-18);
    Ydh19= TimeFrameGetPrice( “o”, inDaily,-19);
    Ydh20= TimeFrameGetPrice( “o”, inDaily,-20);
    Ydh21= TimeFrameGetPrice( “o”, inDaily,-21);

    yddH2 = Max(YdH1, YdH2);
    yddH3 = Max(yddH2,YdH3);
    yddH4= Max(yddH3,YdH4);
    yddH5= Max(yddH4,YdH5);
    yddH6= Max(yddH5,YdH6);
    yddH7= Max(yddH6,YdH7);
    yddH8= Max(yddH7,YdH8);
    yddH9= Max(yddH8,YdH9);
    yddH10= Max(yddH9,YdH10);
    yddH11= Max(yddH10,YdH11);
    yddH12= Max(yddH11,YdH12);
    yddH13= Max(yddH12,YdH13);
    yddH14= Max(yddH13,YdH14);
    yddH15= Max(yddH14,YdH15);
    yddH16= Max(yddH15,YdH16);
    yddH17= Max(yddH16,YdH17);
    yddH18= Max(yddH17,YdH18);
    yddH19= Max(yddH18,YdH19);
    yddH20= Max(yddH19,YdH20);
    yddH21= Max(yddH20,YdH21);

    yddm2 = Min(YdH1, YdH2);
    yddm3 = Min(yddm2,YdH3);
    yddm4= Min(yddm3,YdH4);
    yddm5= Min(yddm4,YdH5);
    yddm6= Min(yddm5,YdH6);
    yddm7= Min(yddm6,YdH7);
    yddm8= Min(yddm7,YdH8);
    yddm9= Min(yddm8,YdH9);
    yddm10= Min(yddm9,YdH10);
    yddm11= Min(yddm10,YdH11);
    yddm12= Min(yddm11,YdH12);
    yddm13= Min(yddm12,YdH13);
    yddm14= Min(yddm13,YdH14);
    yddm15= Min(yddm14,YdH15);
    yddm16= Min(yddm15,YdH16);
    yddm17= Min(yddm16,YdH17);
    yddm18= Min(yddm17,YdH18);
    yddm19= Min(yddm18,YdH19);
    yddm20= Min(yddm19,YdH20);
    yddm21= Min(yddm20,YdH21);

    21DHO= yddH21;
    21DLO = yddm21;

    10DHO = yddH10;
    10DLO = yddm10;

    5DHO= yddH5;
    5DLO = yddm5;

    3DHO= yddH3;
    3DLO = yddm3;

  3. Dear Rajendren,

    Thank you very much for the wonderful dashboard.

    I have a slight confusion in reading the dashboard.

    Whether I have to read the increasing decreasing numbers from right to left or left to right.

    Thanks in advance for the kind help

Leave a Reply

Get Notifications, Alerts on Market Updates, Trading Tools, Automation & More