pine-script - 股票清单上的松脚本
问题描述
寻求有关 pine 脚本的帮助,以在一组 20 只股票上运行 20、50 ema 交叉。
据我所知,pine 脚本在交易视图中的选定图表上运行,如何使其在选定股票上运行并查看列表中的结果。
解决方案
此代码包含 20 个符号,我认为单个代码中最多可以添加 50 个(由 tradingview 设置的内存限制),您可以根据您的要求替换符号。当交叉发生时,您将能够在图表屏幕上看到该股票。
//@version=4
strategy("ema crossover custom screener", shorttitle = 'ema crossover custom screener', overlay = true)
// Symbols
s01= input('NSE:CUMMINSIND', type=input.symbol)
s02= input('NSE:DABUR', type=input.symbol)
s03= input('NSE:DALBHARAT', type=input.symbol)
s04= input('NSE:DISHTV', type=input.symbol)
s05= input('NSE:DIVISLAB', type=input.symbol)
s06= input('NSE:DLF', type=input.symbol)
s07= input('NSE:DMART', type=input.symbol)
s08= input('NSE:DRREDDY', type=input.symbol)
s09= input('NSE:EDELWEISS', type=input.symbol)
s10= input('NSE:EICHERMOT', type=input.symbol)
s11= input('NSE:EMAMILTD', type=input.symbol)
s12= input('NSE:ENDURANCE', type=input.symbol)
s13= input('NSE:ENGINERSIN', type=input.symbol)
s14= input('NSE:EQUITAS', type=input.symbol)
s15= input('NSE:ESCORTS', type=input.symbol)
s16= input('NSE:EXIDEIND', type=input.symbol)
s17= input('NSE:FCONSUMER', type=input.symbol)
s18= input('NSE:FEDERALBNK', type=input.symbol)
s19= input('NSE:FORTIS', type=input.symbol)
s20= input('NSE:FRETAIL', type=input.symbol)
///////////////
// FUNCTIONS //
// Screener Function
screenerFunc() =>
ema20= ema(close,20)
ema50=ema(close,50)
[ema20,ema50]
///////////////////////////////////////
// Running Functions for all sybmols //
[v01, c01] = security(s01, timeframe.period, screenerFunc())
[v02, c02] = security(s02, timeframe.period, screenerFunc())
[v03, c03] = security(s03, timeframe.period, screenerFunc())
[v04, c04] = security(s04, timeframe.period, screenerFunc())
[v05, c05] = security(s05, timeframe.period, screenerFunc())
[v06, c06] = security(s06, timeframe.period, screenerFunc())
[v07, c07] = security(s07, timeframe.period, screenerFunc())
[v08, c08] = security(s08, timeframe.period, screenerFunc())
[v09, c09] = security(s09, timeframe.period, screenerFunc())
[v10, c10] = security(s10, timeframe.period, screenerFunc())
[v11, c11] = security(s11, timeframe.period, screenerFunc())
[v12, c12] = security(s12, timeframe.period, screenerFunc())
[v13, c13] = security(s13, timeframe.period, screenerFunc())
[v14, c14] = security(s14, timeframe.period, screenerFunc())
[v15, c15] = security(s15, timeframe.period, screenerFunc())
[v16, c16] = security(s16, timeframe.period, screenerFunc())
[v17, c17] = security(s17, timeframe.period, screenerFunc())
[v18, c18] = security(s18, timeframe.period, screenerFunc())
[v19, c19] = security(s19, timeframe.period, screenerFunc())
[v20, c20] = security(s20, timeframe.period, screenerFunc())
// Screener label //
scr_label = 'Ema crossover: \n##########\n'
scr_label := crossover(v01,c01 )==true ? scr_label + s01 +'\n' : scr_label
scr_label := crossover(v02,c02 )==true ? scr_label + s02 +'\n' : scr_label
scr_label := crossover(v03,c03 )==true ? scr_label + s03 +'\n' : scr_label
scr_label := crossover(v04,c04 )==true ? scr_label + s04 +'\n' : scr_label
scr_label := crossover(v05,c05 )==true ? scr_label + s05 +'\n' : scr_label
scr_label := crossover(v06,c06 )==true ? scr_label + s06 +'\n' : scr_label
scr_label := crossover(v07,c07 )==true ? scr_label + s07 +'\n' : scr_label
scr_label := crossover(v06,c08 )==true ? scr_label + s08 +'\n' : scr_label
scr_label := crossover(v08,c09 )==true ? scr_label + s09 +'\n' : scr_label
scr_label := crossover(v09,c10 )==true ? scr_label + s10 +'\n' : scr_label
scr_label := crossover(v10,c11 )==true ? scr_label + s11 +'\n' : scr_label
scr_label := crossover(v11,c12 )==true ? scr_label + s12 +'\n' : scr_label
scr_label := crossover(v12,c13 )==true ? scr_label + s13 +'\n' : scr_label
scr_label := crossover(v13,c14 )==true ? scr_label + s14 +'\n' : scr_label
scr_label := crossover(v14,c15 )==true ? scr_label + s15 +'\n' : scr_label
scr_label := crossover(v15,c16 )==true ? scr_label + s16 +'\n' : scr_label
scr_label := crossover(v16,c17 )==true ? scr_label + s17 +'\n' : scr_label
scr_label := crossover(v18,c18 )==true ? scr_label + s18 +'\n' : scr_label
scr_label := crossover(v19,c19 )==true ? scr_label + s19 +'\n' : scr_label
scr_label := crossover(v20,c20 )==true ? scr_label + s20 +'\n' : scr_label
// Plot Label
lab_up = label.new(bar_index, 0, scr_label, color=color.white, textcolor=color.green, style = label.style_label_down,yloc = yloc.price)
label.delete(lab_up[1])
if (timeframe.isintraday and time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), 00, 00))
strategy.entry(" ema crossover", true, when = strategy.position_size[1] == 0 and barstate.isconfirmed, alert_message = scr_label)
推荐阅读
- spring-boot - Spring Boot 无法读取 docker-compose 环境变量
- php - 在php数组中使用foreach?
- sql - Hive Query,有什么好的方法可以优化这些联合吗?
- r - 有条件地删除 R 中的行
- java - CMD、C# 和 Java 不允许我使用在同一行设置的环境变量
- prolog - 使用 mondial - prolog 具有最长陆地边界的谓词
- reactjs - 将状态传递给 {children} React hook
- regex - 如何 grep 某些内容并防止该短语出现在结果中?
- spring - 如何从表中删除数据?
- typescript - 我的“.eslintrc.js”文件出错 - “解析错误:已为 @typescript-eslint/parser 设置了“parserOptions.project”。”