Menu

Grade Every Stock Before You Trade!



The script(s) featured in this episode are provided below for educational and reference purposes. Trading stocks, options, futures, and other financial instruments involves substantial risk of loss and is not suitable for all investors. You may lose some or all of your invested capital. Always review and thoroughly test any code in a simulator before using it in a live trading environment.

This video is provided by YouTube. It is blocked until you accept functional cookies.

INIT
This script is from a previous episode. Changes have been marked in the file so you can follow what was adjusted in this episode.

//INIT
$chart_1m = GetWindowObj("chart1m");
$chart_daily = GetWindowObj("chartd");
$chart_60_min = GetWindowObj("chart_60_min");//+ ADDED THIS LINE
$DASHBOARD = 0;//+ ADDED THIS LINE
$montage_window = GetWindowObj("montage_window");
ExecHotkey("OBJECT_INIT_TRADE");
$ACCOUNT_NUMBER = "YOUR_ACCOUNT_NUMBER_HERE";

OBJECT_INIT_TRADE
This script is from a previous episode. Changes have been marked in the file so you can follow what was adjusted in this episode.

//OBJECT_INIT_TRADE
if (GetVar("$TRADE")==0) $TRADE=0;
if (!IsObj($TRADE)) $TRADE = newUserObj();
$TRADE.DAILYEMA200 = 0;
$TRADE.DAILYEMA200_LAST = 0;
$TRADE.DAILYSMA200 = 0;
$TRADE.DAILYSMA200_LAST = 0;
$TRADE.TIME_ON_TICKER = 0;
$TRADE.CHART_LAST_SYMB = "";
$TRADE.LAST_PL = 1234;
$TRADE.LAST_SHARES = 0;
$TRADE.LAST_GAIN_LOSS = 0;
$TRADE.LAST_AVERAGE = 0;
$TRADE.LAST_PER_SHARE = 0;
$TRADE.BUY_AT_TARGET = 0;
$TRADE.BUY_SPREAD = 0.10;
$TRADE.ALLOW_AVERAGE_DOWN = 0;
$TRADE.MAX_LOSS_PER_TICKER = -50;
$TRADE.TIMER_RUNNNING = 1;
$TRADE.TRAILING_PROFIT_PRICE = 0;
$TRADE.TRAILING_PROFIT_SPREAD = 0.10;
$TRADE.TRAILING_AUTO_AMOUNT = 0.10;
$TRADE.TRAILING_AUTO_ON_OFF = 0;

$TRADE.ALLOWED_SPREAD = 0.20;

$TRADE.OVERRIDE_REPLAY = 0;//BUG
$TRADE.OVERRIDE_REGHOURS = 0;//BUG

//+ ADDED THE FOLLOWING 7 LINES
$TRADE.PILLARS_PRICE_MIN = 2;
$TRADE.PILLARS_PRICE_MAX = 20;
$TRADE.PILLARS_RVOL_MIN = 5;
$TRADE.PILLARS_UP_DAILY_PERCENT_MIN = 30;
$TRADE.PILLARS_FLOAT_MAX = 5000000;
$TRADE.RATING_VALUE = 0;
$TRADE.RATING_TEXT_DESC = "F";

//+ ADDED THE FOLLOWING TICKER LINES
//---SUB OBJECT - CALCS
$TRADE.CALCS = newUserObj();
$TRADE.CALCS.TOTAL15MIN = 0;
$TRADE.CALCS.TOTAL30 = 0;
$TRADE.CALCS.TOTAL50 = 0;
$TRADE.CALCS.TOTAL50_AVG = 0;
$TRADE.CALCS.BAR_60_BARNUM = 0;
$TRADE.CALCS.TOTAL60 = 0;
$TRADE.CALCS.BAR_60_THIS_DATE = "";
$TRADE.CALCS.TOTAL60MIN = 0;
$TRADE.CALCS.VOLUME_FETCH = 0;
$TRADE.CALCS.BAR_60_EXIT = 0;
$TRADE.CALCS.BAR_60_DAILYBAR = 0;
$TRADE.CALCS.BAR_60_START_DATE = "";
$TRADE.CALCS.TOTAL90 = 0;
$TRADE.CALCS.RVOLBAR = -91;
$TRADE.CALCS.MINUTES_BARNUM = -61;

ExecHotkey("OBJECT_INIT_TRACKING");
ExecHotkey("OBJECT_INIT_STOP");

OBJECT_LOAD_TICKER
(NEW)
(This script was introduced in this episode)

//OBJECT_LOAD_TICKER

$SYMBOL_DATA = GetQuoteObj($chart_1m.SYMBOL);
$TRADE.FLOAT = $SYMBOL_DATA.Float;
$TRADE.CHANGE_PERCENT = Round(((($bar0.Close - $SYMBOL_DATA.yClose) / $SYMBOL_DATA.yClose) * 100),2);

$TRADE.EMA9 = $chart_1m.getStudyVal("EMA9");
$TRADE.EMA20 = $chart_1m.getStudyVal("EMA20");
$TRADE.EMA50 = $chart_1m.getStudyVal("EMA50");
$TRADE.VWAP = $chart_1m.getStudyVal("VWAP");


ExecHotkey("TIMER_LOAD_TICKER_VOLUME");
ExecHotkey("TIMER_STOCK_RVOLS");
ExecHotkey("TIMER_DRAW_RATING_BUTTONS");
ExecHotkey("TIMER_RATE_STOCK");

TIMER_LOAD_TICKER_VOLUME
(NEW)
(This script was introduced in this episode)

//TIMER_LOAD_TICKER_VOLUME (NEW)

//Requires a chart named "chart_60_min" set to 60 minutes
if ($TRADE.CALCS.VOLUME_FETCH < 3){
    $TRADE.CALCS.VOLUME_FETCH = $TRADE.CALCS.VOLUME_FETCH + 1;
} else {
    $TRADE.CALCS.VOLUME_FETCH = 0;
    $TRADE.CALCS.BAR_60_EXIT = 0;
    $TRADE.CALCS.BAR_60_BARNUM = 0;
    $TRADE.TODAY_VOLUME = 0;
    if (IsObj($chart_60_min)){
        $TRADE.CALCS.BAR_60_DAILYBAR = $chart_60_min.GetBar($TRADE.CALCS.BAR_60_BARNUM);
        $TRADE.CALCS.BAR_60_START_DATE= "";
        while ($TRADE.CALCS.BAR_60_EXIT == 0) {
            $TRADE.CALCS.BAR_60_DAILYBAR = $chart_60_min.GetBar($TRADE.CALCS.BAR_60_BARNUM);
            if ($TRADE.CALCS.BAR_60_START_DATE == ""){
                $TRADE.CALCS.BAR_60_START_DATE=SubString($TRADE.CALCS.BAR_60_DAILYBAR.Time, 0, 4) + "/" + SubString($TRADE.CALCS.BAR_60_DAILYBAR.Time, 4, 6) + "/" + SubString($TRADE.CALCS.BAR_60_DAILYBAR.Time, 6, 8);
            }
            $TRADE.CALCS.BAR_60_THIS_DATE=SubString($TRADE.CALCS.BAR_60_DAILYBAR.Time, 0, 4) + "/" + SubString($TRADE.CALCS.BAR_60_DAILYBAR.Time, 4, 6) + "/" + SubString($TRADE.CALCS.BAR_60_DAILYBAR.Time, 6, 8);
            if ($TRADE.CALCS.BAR_60_THIS_DATE != $TRADE.CALCS.BAR_60_START_DATE){
                $TRADE.CALCS.BAR_60_EXIT = 1;
            } else {
                $TRADE.TODAY_VOLUME = $TRADE.TODAY_VOLUME + $TRADE.CALCS.BAR_60_DAILYBAR.Volume;
            }
            $TRADE.CALCS.BAR_60_BARNUM = $TRADE.CALCS.BAR_60_BARNUM - 1;
            
            //+ ADDED THESE 3 LINES TO FIX AFTER HOURS BUG Sep-6-2026
            if ($TRADE.CALCS.BAR_60_BARNUM < -24){
                $TRADE.CALCS.BAR_60_EXIT = 1;
            }
        }
    }
    $TRADE.TODAY_VOLUME_SHOW = $TRADE.TODAY_VOLUME;
    if ($TRADE.TODAY_VOLUME_SHOW > 1000000){
        $TRADE.TODAY_VOLUME_SHOW = $TRADE.TODAY_VOLUME_SHOW / 1000000;
        $TRADE.TODAY_VOLUME_SHOW = Round($TRADE.TODAY_VOLUME_SHOW,1);
        $TRADE.TODAY_VOLUME_SHOW = $TRADE.TODAY_VOLUME_SHOW + " M";
    } else {
        $TRADE.TODAY_VOLUME_SHOW = $TRADE.TODAY_VOLUME_SHOW / 100000;
        $TRADE.TODAY_VOLUME_SHOW = Round($TRADE.TODAY_VOLUME_SHOW,1);
        $TRADE.TODAY_VOLUME_SHOW = $TRADE.TODAY_VOLUME_SHOW + " K";
    }
    if ($TRADE.CALCS.TOTAL50 > 0){
        $TRADE.RVOL_50DAY = Round(($TRADE.TODAY_VOLUME / $TRADE.CALCS.TOTAL50_AVG),1);
    } else {
        $TRADE.RVOL_50DAY  = 0;
    }

}

TIMER_STOCK_RVOLS
(NEW)
(This script was introduced in this episode)

//TIMER_STOCK_RVOLS

//DAYCHART LOGIC - RVOL 30/60/90
$TRADE.CALCS.RVOLBAR = -91;

//calc daily rvols
if (IsObj($chart_daily)){
    if (($TRADE.CALCS.TOTAL90 + $TRADE.CALCS.TOTAL60 + $TRADE.CALCS.TOTAL50 + $TRADE.CALCS.TOTAL30) == 0){
        while ($TRADE.CALCS.RVOLBAR <= -1) {
            if ($TRADE.CALCS.RVOLBAR <= -61) {
                $TRADE.CALCS.TOTAL90 = $TRADE.CALCS.TOTAL90 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
            } else if ($TRADE.CALCS.RVOLBAR <= -51) {
                $TRADE.CALCS.TOTAL90 = $TRADE.CALCS.TOTAL90 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
                $TRADE.CALCS.TOTAL60 = $TRADE.CALCS.TOTAL60 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
            } else if ($TRADE.CALCS.RVOLBAR <= -31) {
                $TRADE.CALCS.TOTAL90 = $TRADE.CALCS.TOTAL90 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
                $TRADE.CALCS.TOTAL60 = $TRADE.CALCS.TOTAL60 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
                $TRADE.CALCS.TOTAL50 = $TRADE.CALCS.TOTAL50 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
            } else if ($TRADE.CALCS.RVOLBAR <= -1) {
                $TRADE.CALCS.TOTAL90 = $TRADE.CALCS.TOTAL90 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
                $TRADE.CALCS.TOTAL60 = $TRADE.CALCS.TOTAL60 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
                $TRADE.CALCS.TOTAL50 = $TRADE.CALCS.TOTAL50 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
                $TRADE.CALCS.TOTAL30 = $TRADE.CALCS.TOTAL30 + $chart_daily.GetBar($TRADE.CALCS.RVOLBAR).Volume;
            }

            $TRADE.CALCS.RVOLBAR = $TRADE.CALCS.RVOLBAR + 1;

        }
    }

    $TRADE.CALCS.TOTAL50_AVG = $TRADE.CALCS.TOTAL50 / 50;

}

BUTTON_NEWS_ON_OFF
(NEW)
(This script was introduced in this episode)

//BUTTON_NEWS_ON_OFF

$tmp_news_var = "HAS_NEWS_" + $chart_1m.SYMBOL;

if (GetVar($tmp_news_var)==0) SetVar($tmp_news_var, 0);

if (GetVar($tmp_news_var) == 1){
    SetVar($tmp_news_var, 2);
} else if (GetVar($tmp_news_var) == 2){
    SetVar($tmp_news_var, 0);
} else {
    SetVar($tmp_news_var, 1);
}

MsgLog($tmp_news_var + " : " + GetVar($tmp_news_var));

TIMER_DRAW_RATING_BUTTONS
(NEW)
(This script was introduced in this episode)

//TIMER_DRAW_RATING_BUTTONS

//NEWS?
if (IsObj($DASHBOARD)){
    if (IsObj($DASHBOARD.getCustButObj("NEWS"))){
        $tmp_news_var = "HAS_NEWS_" + $chart_1m.SYMBOL;
        if (GetVar($tmp_news_var)==0) SetVar($tmp_news_var, 0);
        if (GetVar($tmp_news_var) == 1){
            $DASHBOARD.getCustButObj("NEWS").Text = " YES";
            $DASHBOARD.getCustButObj("NEWS").BkColor = Color("Green");
        } else if (GetVar($tmp_news_var) == 2){
            $DASHBOARD.getCustButObj("NEWS").Text = " NO";
            $DASHBOARD.getCustButObj("NEWS").BkColor = Color("Red");
        } else {
            $DASHBOARD.getCustButObj("NEWS").Text = " ?";
            $DASHBOARD.getCustButObj("NEWS").BkColor = Color("Yellow");
        }
    }

    //PRICE
    if (IsObj($DASHBOARD.getCustButObj("PRICE"))){
        if ($montage_window.BID > $TRADE.PILLARS_PRICE_MIN && $montage_window.BID < $TRADE.PILLARS_PRICE_MAX){
            $DASHBOARD.getCustButObj("PRICE").BkColor = Color("Green");
        } else {
            $DASHBOARD.getCustButObj("PRICE").BkColor = Color("Red");
        }
        $DASHBOARD.getCustButObj("PRICE").Text = " " + Round($montage_window.BID, 2);
    }



    //FLOAT
    if (IsObj($DASHBOARD.getCustButObj("FLOAT"))){
        if ($TRADE.FLOAT < ($TRADE.PILLARS_FLOAT_MAX * 0.25)){
            $DASHBOARD.getCustButObj("FLOAT").BkColor = Color("#C576F6");
        } else if ($TRADE.FLOAT < $TRADE.PILLARS_FLOAT_MAX){
            $DASHBOARD.getCustButObj("FLOAT").BkColor = Color("Green");
        } else if ($TRADE.FLOAT < ($TRADE.PILLARS_FLOAT_MAX * 1.5)){
           $DASHBOARD.getCustButObj("FLOAT").BkColor = Color("Yellow");
        } else {
            $DASHBOARD.getCustButObj("FLOAT").BkColor = Color("Red");
        }

        if ($TRADE.FLOAT > 1000000000){
            $DASHBOARD.getCustButObj("FLOAT").Text = " " + Round(($TRADE.FLOAT / 1000000000),1) + " B";
        } else if ($TRADE.FLOAT > 1000000){
            $DASHBOARD.getCustButObj("FLOAT").Text = " " + Round(($TRADE.FLOAT / 1000000),1) + " M";
        } else {
            $DASHBOARD.getCustButObj("FLOAT").Text = " " + Round(($TRADE.FLOAT / 1000),1) + " K";
        }
    }

    //RVOL 50 days
    if (IsObj($DASHBOARD.getCustButObj("RVOL_50"))){
        if ($TRADE.RVOL_50DAY >= ($TRADE.PILLARS_RVOL_MIN * 2)){
            $DASHBOARD.getCustButObj("RVOL_50").BkColor = Color("#C576F6");
        } else if ($TRADE.RVOL_50DAY >= $TRADE.PILLARS_RVOL_MIN){
            $DASHBOARD.getCustButObj("RVOL_50").BkColor = Color("Green");
        } else if ($TRADE.RVOL_50DAY >= ($TRADE.PILLARS_RVOL_MIN * 0.5)){
           $DASHBOARD.getCustButObj("RVOL_50").BkColor = Color("Yellow");
        } else if ($TRADE.RVOL_50DAY != 0){
            $DASHBOARD.getCustButObj("RVOL_50").BkColor = Color("Red");
        }

//        MsgLog("VOL: " + $TRADE.TODAY_VOLUME);
//        MsgLog("AVG VOL: " + $TRADE.CALCS.TOTAL50_AVG);
        $DASHBOARD.getCustButObj("RVOL_50").Text = " " + Round(($TRADE.TODAY_VOLUME / $TRADE.CALCS.TOTAL50_AVG),1);

    }

    //volume today
    if (IsObj($DASHBOARD.getCustButObj("VOLUME_TODAY"))){
        $DASHBOARD.getCustButObj("VOLUME_TODAY").Text = " " + $TRADE.TODAY_VOLUME_SHOW;
        if ($TRADE.TODAY_VOLUME > 25000000){
            $DASHBOARD.getCustButObj("VOLUME_TODAY").BkColor = Color("#C576F6");
        } else if ($TRADE.TODAY_VOLUME > 15000000){
            $DASHBOARD.getCustButObj("VOLUME_TODAY").BkColor = Color("Green");
        } else if ($TRADE.TODAY_VOLUME > 5000000){
            $DASHBOARD.getCustButObj("VOLUME_TODAY").BkColor = Color("Yellow");
        } else {
            $DASHBOARD.getCustButObj("VOLUME_TODAY").BkColor = Color("Red");
        }
    }

    //today change in price %
    if (IsObj($DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY"))){
        if ($TRADE.CHANGE_PERCENT > 200){
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").BkColor = Color("#C576F6");
        } else if ($TRADE.CHANGE_PERCENT > $TRADE.PILLARS_UP_DAILY_PERCENT_MIN){
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").BkColor = Color("Green");
        } else if ($TRADE.CHANGE_PERCENT > ($TRADE.PILLARS_UP_DAILY_PERCENT_MIN * 0.8)){
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").BkColor = Color("Yellow");
        } else if ($TRADE.CHANGE_PERCENT > ($TRADE.PILLARS_UP_DAILY_PERCENT_MIN * 0.6)){
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").BkColor = Color("Orange");
        } else {
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").BkColor = Color("Red");
        }

        if ($TRADE.CHANGE_PERCENT > 0){
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").Text = " Up:   " + $TRADE.CHANGE_PERCENT + "%";
        } else {
            $DASHBOARD.getCustButObj("PRICE_CHANGE_TODAY").Text = " Dwn:   " + $TRADE.CHANGE_PERCENT + "%";
        }

    }
}





STOCK_RESET
(NEW)
(This script was introduced in this episode)

//STOCK_RESET
$TRADE.CALCS.TOTAL50 = 0;
$TRADE.CALCS.VOLUME_FETCH = 3;
$TRADE.CALCS.TOTAL90 = 0;
$TRADE.CALCS.TOTAL60 = 0;
$TRADE.CALCS.TOTAL50 = 0;
$TRADE.CALCS.TOTAL30 = 0;

TIMER_RATE_STOCK
(NEW)
(This script was introduced in this episode)

//TIMER_RATE_STOCK

$TRADE.RATING_VALUE = 0;

//news
$tmp_news_var = "HAS_NEWS_" + $chart_1m.SYMBOL;
if (GetVar($tmp_news_var)==0) SetVar($tmp_news_var, 0);
if (GetVar($tmp_news_var) == 1){
    $TRADE.RATING_VALUE = $TRADE.RATING_VALUE + 1;
}

//price
if ($montage_window.BID > $TRADE.PILLARS_PRICE_MIN){
    if ($montage_window.BID < $TRADE.PILLARS_PRICE_MAX){
        $TRADE.RATING_VALUE = $TRADE.RATING_VALUE + 1;
    }
}

//rvol
if ($TRADE.PILLARS_RVOL_MIN < $TRADE.CALCS.TOTAL50_AVG){
    $TRADE.RATING_VALUE = $TRADE.RATING_VALUE + 1;
}

//float
if ($TRADE.PILLARS_FLOAT_MAX > $TRADE.FLOAT){
    $TRADE.RATING_VALUE = $TRADE.RATING_VALUE + 1;
}

//up on the day
if ($TRADE.PILLARS_UP_DAILY_PERCENT_MIN < $TRADE.CHANGE_PERCENT){
    $TRADE.RATING_VALUE = $TRADE.RATING_VALUE + 1;
}

if (IsObj($DASHBOARD)){
    if (IsObj($DASHBOARD.getCustButObj("RATING"))){
        $DASHBOARD.getCustButObj("RATING").Text = $TRADE.TODAY_VOLUME_SHOW;
        if ( $TRADE.RATING_VALUE > 5){
            $DASHBOARD.getCustButObj("RATING").BkColor = Color("#C576F6");
            $DASHBOARD.getCustButObj("RATING").Text = " A+";
        } else if ( $TRADE.RATING_VALUE > 4){
            $DASHBOARD.getCustButObj("RATING").BkColor = Color("Green");
            $DASHBOARD.getCustButObj("RATING").Text = " A";
        } else if ( $TRADE.RATING_VALUE > 3){
            $DASHBOARD.getCustButObj("RATING").BkColor = Color("Yellow");
            $DASHBOARD.getCustButObj("RATING").Text = " B";
        } else if ( $TRADE.RATING_VALUE > 2){
            $DASHBOARD.getCustButObj("RATING").BkColor = Color("Orange");
            $DASHBOARD.getCustButObj("RATING").Text = " C";
        } else {
            if ( $TRADE.RATING_VALUE == 2){
                $DASHBOARD.getCustButObj("RATING").Text = " E";
            } else {
                $DASHBOARD.getCustButObj("RATING").Text = " F";
            }
            $DASHBOARD.getCustButObj("RATING").BkColor = Color("Red");
        }
    }
}

TIMER
This script is from a previous episode. Changes have been marked in the file so you can follow what was adjusted in this episode.

//TIMER
ExecHotkey("OBJECT_LOAD_TIME");
if ($TRADE.TIME_ON_TICKER > 2 && $TRADE.DAILYEMA200 == 0){
    //EMA200 comes from daily chart
    ExecHotkey("EMA200");
}

//+ ADDED THE FOLLOWING 5 LINES
if (GetVar("$LAST_DATETIME_BAR0")==0) $LAST_DATETIME_BAR0="";
if ($LAST_DATETIME_BAR0 != $TIME.DATETIME_BAR0){
    ExecHotkey("STOCK_RESET");
}
ExecHotkey("OBJECT_LOAD_TICKER");

ExecHotkey("ANALYZE_MACD");
ExecHotkey("DASHBOARD");
ExecHotkey("TIMER_PL_UPDATE");
ExecHotkey("TIMER_BUY_TARGET");
ExecHotkey("TIMER_TRAILING_STOP_AUTO");
ExecHotkey("CHART_TIMER_DRAW_BUY_TARGET");
ExecHotkey("CHART_TIMER_DRAW_AUTO_TRAILING");
ExecHotkey("TIMER_HEARTBEAT");

$LAST_DATETIME_BAR0 = $TIME.DATETIME_BAR0;//+ ADDED THIS LINE

CHART_UPDATE
This script is from a previous episode. Changes have been marked in the file so you can follow what was adjusted in this episode.

//CHART_UPDATE (runs every time chart object updates data)

if ($TRADE.CHART_LAST_SYMB != $chart_1m.SYMBOL){
    $TRADE.CHART_LAST_SYMB = $chart_1m.SYMBOL;
    $TRADE.TIME_ON_TICKER = 0;
    $TRADE.DAILYSMA200 = 0;
    $TRADE.DAILYEMA200 = 0;
    MsgLog("Changed Ticker: " + $chart_1m.SYMBOL);
    ExecHotkey("DETECT_STOCK_COUNTRY");
    $TRADE.BUY_AT_TARGET = 0;
    $TRADE.TRAILING_AUTO_ON_OFF = 0;
    ExecHotkey("OBJECT_INIT_STOP");
    ExecHotkey("OBJECT_LOAD_TICKER");//+ ADDED THIS LINE
    ExecHotkey("STOCK_RESET");//+ ADDED THIS LINE
}
$TRADE.TIME_ON_TICKER = $TRADE.TIME_ON_TICKER + 1;

CHART_TIMER_DRAW_STOP
This script is from a previous episode. Changes have been marked in the file so you can follow what was adjusted in this episode.

//CHART_TIMER_DRAW_STOP
if (($TRADE.STOP.FLEX_LEVEL > 0 || $TRADE.STOP.STATIC_LEVEL > 0) && $montage_window.BID > 0){//+ UPDATED THIS LINE
    if ($TRADE.STOP.LAST_VALUE != $TRADE.STOP.VALUE || $TRADE.STOP.LAST_VALUE == 0 || $TRADE.STOP.FLEX_LEVEL > 0  ){
        if ($montage_window.POS == 0){
            //not in a trade (BID or ASK up to you / spread)
            $TRADE.STOP.VALUE = $montage_window.BID - $TRADE.STOP.FLEX_LEVEL;
        } else {
            //in a trade
            $TRADE.STOP.VALUE = $montage_window.AVGCost - $TRADE.STOP.FLEX_LEVEL;
        }

        if ($TRADE.STOP.STATIC_LEVEL > 0){
            $TRADE.STOP.VALUE = $TRADE.STOP.STATIC_LEVEL;
        }

        if (IsObj($chart_1m.GetTrendline("StopText"))){
            $chart_1m.GetTrendline("StopText").Delete();
        }
        if (IsObj($chart_1m.GetTrendline("StopLine"))){
            $chart_1m.GetTrendline("StopLine").Delete();
        }

        //RISK TEXT FROM SHARES DASHBOARD BUTTON
        $shares_to_buy = Round($DASHBOARD.getCustButObj("SHARES").Text,0);
        if ($montage_window.POS == 0){
            $risk_value = Round((($montage_window.ASK - $TRADE.STOP.VALUE)*$shares_to_buy),2);
        } else {
            $risk_value = Round((($montage_window.AVGCost - $TRADE.STOP.VALUE)*$shares_to_buy),2);
        }
        $risk_text = $shares_to_buy + " Shares ($-" + $risk_value + ")";

        $chart_1m.CreateTrendline("HorizLine, Price=" + $TRADE.STOP.VALUE + ", Name=StopLine, LineStyle=DashDotLine, LineWidth=5, Color=#FF0000, LabelTextColor=#000000, LabelBGColor=#FF0000");

        $chart_1m.ConfigTrendLine Text DashLine:0,0,0:1:255,0,0:255,255,255;
        $chart_1m.CreateTrendline("Text, Price=" + $TRADE.STOP.VALUE + ", Price1=" + ($TRADE.STOP.VALUE) + ", Time=" + $TIME.DATETIME_BAR0 + ",  Time1=" + $TIME.DATETIME_BAR8 + ", Transparency=-162, Fill=1, Name=StopText, LineStyle=2, LineColor=#FF0000, LineWidth=1, Text=" + $risk_text);


    }
} else {
    //delete line if no stop set
    if (IsObj($chart_1m.GetTrendline("StopText"))){
        $chart_1m.GetTrendline("StopText").Delete();
    }
    if (IsObj($chart_1m.GetTrendline("StopLine"))){
        $chart_1m.GetTrendline("StopLine").Delete();
    }
    $TRADE.STOP.VALUE = 0;
}
if ($TRADE.STOP.LAST_VALUE != $TRADE.STOP.VALUE){
    ExecHotkey("SELL_STOP");
}

if (IsObj($DASHBOARD.getCustButObj("StopPrice"))){
    $DASHBOARD.getCustButObj("StopPrice").Text = $TRADE.STOP.VALUE;
}

$TRADE.STOP.LAST_VALUE = $TRADE.STOP.VALUE;



Disclaimer: This is an independent project and is not affiliated with or endorsed by DASTrader.com.

The tool is currently under development and intended for educational and experimental purposes only, including improving the experience of working with DAS hotkey scripting (e.g., code validation, highlighting, and structure).

It does not execute trades, provide trading signals, or offer financial advice. Any scripts created or used with DAS Trader remain the sole responsibility of the user.

Trading involves significant risk. You are fully responsible for verifying all scripts, commands, and behavior before using them in a live trading environment.

This tool is provided “as-is” with no guarantees of accuracy, completeness, or reliability. Use at your own risk. Always test thoroughly in a simulator before live trading.




More Videos

DISCLAIMER

Episode: Grade Every Stock Before You Trade!

The DAS Trader Pro scripts, code examples, tools, and information provided on this website are offered solely for educational and informational purposes. Nothing on this website constitutes financial, investment, legal, tax, or trading advice.

Trading stocks, options, futures, and other financial instruments involves substantial risk of loss and is not suitable for all investors. You may lose some or all of your invested capital.

No representation or warranty is made regarding the accuracy, completeness, reliability, profitability, or suitability of any script, strategy, indicator, automation, workflow, or method presented on this website.

Execution behavior may vary based on broker, routing, market data, platform configuration, DAS Trader Pro version, account settings, market conditions, and other factors beyond the control of DayTradeCoder.

Past performance, examples, demonstrations, screenshots, or historical results are not indicative of future results and should not be relied upon as a guarantee of performance.

You are solely responsible for reviewing, understanding, testing, validating, and monitoring all code before use. All scripts should be thoroughly tested in a simulator or paper-trading environment prior to any live trading activity.

Viewing Scripts For Episode: Grade Every Stock Before You Trade!

You are requesting access to the script associated with this video. This acknowledgment applies only to this script.

USE AT YOUR OWN RISK.

We value your privacy

We use cookies to enhance your browsing experience, serve personalized ads or content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.

Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. Detailed information about cookies is available below.

Required for basic site functionality.