Trading Strategy Toolkit

Learn how to code moving average strategy, and KDJ indicator to analyze and predict changes in stock trends and price patterns using pine script in Tradingview.


Enter your email to unlock the resource.

Join the Algo Trading Club! Sign up to the newsletter and never miss the latest trading news, trading strategy tutorials and special offers! Email




Moving Average Strategy

strategy("Yaonology Moving Average Tutoring", overlay=true, default_qty_type= strategy.percent_of_equity ,default_qty_value=100, currency=currency.USD, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0)
fst = input(title = “MA_Fast”, defval = 20) slw = input(title = “MA_Slow”, defval = 40) ma_fast = sma(close, fst) ma_slow = sma(close, slw) plot(ma_fast, color = plot(ma_slow, color =   if ma_fast > ma_slow          strategy.entry(id = “ma_long”, long = true)   if ma_slow > ma_fast         strategy.close(id = “ma_long”)

KDJ Indicators

// KDJ Indicators
strategy(“Yaonology KDJ Indicators Tutorial”, overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0) prd = input(9, title=”period”) sgnl = input(3, title=”signal”) v(s,l,m) => v = 0.0 v := (m*s+(l-m)*nz(v[1]))/l c = close h = highest(high, prd) l = lowest(low,prd) RSV = 100*((c-l)/(h-l)) K = v(RSV, sgnl, 1) D = v(K, sgnl, 1) J = 3 * K-2 * D plot(K, color = plot(D, color = plot(J, color = if (K < 20 and D < 20 and J < 20 and K > D and K[1] < D[1]) or (J > 0 and J[1] < 0)           strategy.entry(id = “kd”, long = true) if (K > 80 and D > 80 and J > 80 and K < D and K[1] > D[1]) or (J < 100 and J[1] > 100)            strategy.close(id = “kd”)  

Basic Concept



The function sets a number of strategy properties
Example strategy(“Yaonology Moving Average Tutoring”, overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0)
Details overlay:
  • true: the plot would be added as an overlay for the main series
  • false: the plot would be added on a separate chart pane.
  • default_qty_type
  • strategy.fixed: fixed quantity by default
  • specified in the currency of the symbol and the amount is converted into quantity
  • strategy.percent_of_equity: % of currently available equity
  • default_qty_value
  • Number of contracts if strategy.fixed is used
  • Amount of cash in currency if is used
  • Number of percents of currency if strategy.percent_of_equity is used
  • currency
  • Initial_capital
  • the amount of initial capital
  • commission_type
  • strategy.commission.percent: a percentage of the cash volume of order
  • strategy.commission.cash_per_contract: money displayed per contract
  • strategy.commission.cash_per_order: money displayed per order
  • commission_order
  • Number of Percentage or money, depending on the commision_type selected


User can see and edit inputs on the Format Object dialog of the script study
Example fst = input(title = “MA_Fast”, defval = “20”)
Details title title of the input defval default value of the input valuable


The sma function returns the moving average
Example ma_fast = sma(close, fst)
Details source(series) close : close price open: open price high: highest price lowe: lowest price length(integer) Number of bars


Plots a series of data on the chart
Example plot(ma_fast, color =
Details source(series) Series of data to be plotted color color of the plot. color = color = #ff001a color = close >= open ? :


It is a command to enter market position
Example strategy.entry(id = “ma_long”, long = true)
Details id A required parameter. The order identifier. long true: the strategy.entry for long false: the strategy.entry for short


It is a command to exit from the entry with the specified ID.
Example strategy.close(id = “ma_long”)
Details id A required parameter. The order identifier.

This website uses cookies to ensure you get the best experience on our website.

Read Privacy Policy