TradingView--自定义技术指标

article/2025/9/18 20:44:24

TradingView 支持自定义指标,不过是把你要定义的指标写成一个 JS(customIndex.js) 源文件,放在图表库 static 文件夹下。自定义指标 JS 源代码官网模板如下:

{// 将<study name>替换为您的指标名称// 它将由图表库内部使用name: "<study name>",metainfo: {"_metainfoVersion": 40,"id": "<study name>@tv-basicstudies-1","scriptIdPart": "","name": "<study name>",// 此说明将显示在指标窗口中// 当调用createStudy方法时,它也被用作“name”参数"description": "<study description>",// 该描述将显示在图表上"shortDescription": "<short study description>","is_hidden_study": true,"is_price_study": true,"isCustomIndicator": true,"plots": [{"id": "plot_0", "type": "line"}],"defaults": {"styles": {"plot_0": {"linestyle": 0,"visible": true,// 绘图线宽度"linewidth": 2,// 绘制类型://    1 - 直方图//    2 - 线形图//    3 - 十字指针//    4 - 山形图//    5 - 柱状图//    6 - 圆圈图//    7 - 中断线//    8 - 中断区块"plottype": 2,// 显示价格线?"trackPrice": false,// 绘制透明度,百分比。"transparency": 40,// 以#RRGGBB格式绘制颜色"color": "#0000FF"}},// 指标输出值的精度// (小数点后的位数)。"precision": 2,"inputs": {}},"styles": {"plot_0": {// 输出的名字将在样式窗口显示"title": "-- output name --","histogramBase": 0,}},"inputs": [],},constructor: function() {this.init = function(context, inputCallback) {this._context = context;this._input = inputCallback;// 定义要绘制的商品。// 商品应该是一个字符串。// 您可以使用PineJS.Std.ticker(this._context)获取所选商品的代码。// 例,//    var symbol = "AAPL";//    var symbol = "#EQUITY";//    var symbol = PineJS.Std.ticker(this._context) + "#TEST";var symbol = "<TICKER>";this._context.new_sym(symbol, PineJS.Std.period(this._context), PineJS.Std.period(this._context));};this.main = function(context, inputCallback) {this._context = context;this._input = inputCallback;this._context.select_sym(1);// 您可以在PineJS.Std对象中使用以下内置函数://     open, high, low, close//    hl2, hlc3, ohlc4var v = PineJS.Std.close(this._context);return [v];}}
}

1.将指标保存到具有以下结构的自定义指标文件中:

__customIndicators = [*** 您的指标对象,由模板创建 ()***
];

请注意,该指标文件是一个JavaScript源文件,它定义了一个指标对象数组。因此,您可以在其中放置多个指标,或者将它们与我们为您编译的指标组合起来。

2.在 new TradingView.widget() 中使用 indicators_file_name: 'customIndex.js'引入

 widget = new TradingView.widget({***indicators_file_name:'customIndex.js',  /**自定义指标文件 */***
});

完整代码(自定义MACD红绿)

// 自定义指标文件,可以写多个指标
__customIndicators = [{name: "自定义(MACD)",metainfo: {"_metainfoVersion": 40,"id": "macd-custom@tv-basicstudies-1","scriptIdPart": "","name": "自定义(MACD)","description": "自定义(MACD)","shortDescription": "MACD_CUSTOM","is_price_study": false,"isCustomIndicator": true,defaults: {styles: {plot_0: {linestyle: 0,linewidth: 4,//红色plottype: 1,trackPrice: !1,transparency: 35,visible: !0,color: "#da1155"},plot_1: {linestyle: 0,linewidth: 1,plottype: 0,trackPrice: !1,transparency: 0,visible: !0,color: "#FFFFFF"},plot_2: {linestyle: 0,linewidth: 1,plottype: 0,trackPrice: !1,transparency: 0,visible: !0,color: "#FFFF00"},plot_3: {linestyle: 0,linewidth: 4,//绿色plottype: 1,trackPrice: !1,transparency: 35,visible: !0,color: "#33FF33"}},precision: 2,   /**保留小数点 */inputs: {in_0: 12,in_1: 26,in_3: "close",in_2: 9}},plots: [{id: "plot_0",type: "line"},{id: "plot_1",type: "line"},{id: "plot_2",type: "line"},{id: "plot_3",type: "line"}],styles: {plot_0: {title: "Histogram",histogramBase: 0,joinPoints: !1},plot_1: {title: "MACD",histogramBase: 0,joinPoints: !1},plot_2: {title: "Signal",histogramBase: 0,joinPoints: !1},plot_3: {title: "Histogram",histogramBase: 0,joinPoints: !1}},inputs: [{id: "in_0",name: "fastLength",defval: 12,type: "integer",min: 1,max: 2e3,},{id: "in_1",name: "slowLength",defval: 26,type: "integer",min: 1,max: 2e3},{id: "in_3",name: "Source",defval: "close",type: "source",options: "open high low close hl2 hlc3 ohlc4".split(" ")},{id: "in_2",name: "signalLength",defval: 9,type: "integer",min: 1,max: 50}],id: "Moving Average Convergence Custom/Divergence@tv-basicstudies-1",scriptIdPart: "",name: "MACDCUSTOM"},constructor: function() {this.f_0 = function(a, b) {return a - b},this.main = function(a, b) {var c, k, f, n, r, l, u, p, q, e, g, v, i;this._context = a;this._input = b;c = PineJS.Std[this._input(2)](this._context);k = this._input(0);f = this._input(1);n = this._input(3);r = this._context.new_var(c);l = PineJS.Std.ema(r, k, this._context);u = this._context.new_var(c);p = PineJS.Std.ema(u, f, this._context);q = this.f_0(l, p);e = this._context.new_var(q);g = PineJS.Std.sma(e, n, this._context);v = this.f_0(q, g);if (v >= 0) {i = 0;} else {i = v;v = 0}return [v, q, g, i];}}}
];

结果显示效果跟自带MACD一样

 具体内容可添加QQ(1765156144)备注来意


http://chatgpt.dhexx.cn/article/KD5PbVwZ.shtml

相关文章

图表背后的秘密 | 技术指标讲解:ATR指标

ATR&#xff08;Average True Range&#xff09;被称为平均真实波幅。起初应用于股票市场分析&#xff0c;主要用于研判买卖时机&#xff0c;是显示市场变化率的反趋向指标&#xff0c;由威尔德1978年在其书中提出&#xff0c;目前已成为众多指标经常引用的技术量。 ATR指标的计…

PLC系统中的5个技术指标

在工业自动化控制中&#xff0c;经常会遇到开关量、数字值、模拟值、离散值、脉冲值等各种概念&#xff0c;人们在实际应用中很容易混淆这些概念。各种概念如下: 1.开关量:一般指触点的“开”和“关”状态&#xff0c;计算机设备中也常用“0”或“1”来表示开关量的状态。开关量…

传统技术指标有效性的量化分析

投资要点 技术分析源远流长&#xff0c;最早可追溯到查尔斯.亨利.道对股票移动平均数&#xff08;MA&#xff09;的研究&#xff0c;至今已走过100多年的发展历程。这些技术指标尤其是那些常见的、经典的、传统的指标&#xff0c;已经成为普通投资者普遍熟知和使用的研判工具&…

性能测试指标之业务指标和技术指标如何进行区别

通过业务指标 转化我们的技术指标&#xff0c;用户 第三方客户&#xff0c; 公司内部产品经理 产品经理 会提出产品业务指标&#xff0c;需要对业务指标进行挖掘&#xff0c;提出测试场景 业务指标会转化成相对应的技术指标 时间指标 平均响应时间 最大响应时间 最小的响…

用Python绘制MACD、KDJ、布林线技术指标图

背景介绍&#xff1a; 搭建程序化交易平台的过程需要研究技术指标。 环境&#xff1a; OS&#xff1a;mac PYTHON: 3.8 IDE: pycharm 步骤&#xff1a; 第一步&#xff1a;加载库 import pandas as pd import pandas_datareader as web from datetime import datetime, …

计算机硬件的主要技术指标

计算机硬件的主要技术指标 机器字长&#xff1a;CPU一次能处理数据的二进制位数。存储容量&#xff1a;存放二进制信息的总位数运算速度运算速度&#xff08;吉普森法&#xff09;图片来源&#xff1a;老师授课PPT 机器字长&#xff1a;CPU一次能处理数据的二进制位数。 1.由运…

技术分析中的五种常见指标

目录 相对强弱指数&#xff08;RSI&#xff09;移动平均线&#xff08;MA&#xff09;平滑异同移动平均线&#xff08;MACD&#xff09;随机相对强弱指数&#xff08;StochRSI&#xff09;布林线指标&#xff08;BB&#xff09; 简介 市场交易者通过对技术指标的分析来确定资…

数字证书是什么?

数字证书作为一种虚拟证书在互联网的传输过程起着至关重要的作用&#xff0c;人们都知道在数字证书作用下&#xff0c;我们的信息隐私得已保护&#xff0c;但是对于数字证书概念&#xff0c;相信大部分都还是一知半解的。接下来&#xff0c;小编将给大家介绍一下数字证书是什么…

数字证书有什么作用?

数字证书是指 CA 机构发行的一种电子文档&#xff0c;是一串能够表明网络用户身份信息的数字&#xff0c;提供了一种在计算机网络上验证网络用户身份的方式&#xff0c;因此数字证书又称为数字标识。CA 中心采用的是以数字加密技术为核心的数字证书认证技术&#xff0c;通过数字…

数字证书再理解

1.基础知识 1.1.公钥密码体制(public-key cryptography) 公钥密码体制分为三个部分&#xff0c;公钥、私钥、加密解密算法&#xff0c;它的加密解密过程如下&#xff1a; 加密&#xff1a;通过加密算法和公钥对内容(或说明文)进行加密&#xff0c;得到密文。加密过程需要用到…

数字证书(CA)的理解

数字证书的理解 前言 「公开密钥加密」和「数字签名」无法保证公开密钥确实来自信息的发送者。因此&#xff0c;就算公开密钥被第三者恶意替换&#xff0c;接收方也不会注意到。数字证书可以完美的解决这一问题&#xff0c;保证公开密钥的正确性。 处理流程图解 A持有公开密…

CA和数字证书

文章目录 1. 什么是CA2. 数字证书能做什么3. 非对称密钥运算原理4. PKCS系列标准4.1 PKCS#14.2 PKCS#74.2 .1 SignedData的结构分析4.2 .2 envelopedData的结构 4.3 数字信封4.4 PKCS#104.4.1 证书请求过程4.4.2 证书验证过程 5. X.509证书简介5.1 证书文件扩展名5.2 证书链和交…

数字证书原理

证书&#xff0c;也叫做数字证书&#xff0c;是网络世界中的“身份证”。证书将持有者的身份信息和公钥关联到一起&#xff0c;保证公钥确实是这个证书持有者的&#xff0c;通过证书就可以确认持有者的身份。证书由权威的、公正的、可信任的第三方机构颁发&#xff0c;我们把证…

数字证书介绍

1.数字证书的分类 1.1按持有者分类 通常依照证书持有者的类型可将证书分为三类&#xff1a;个人证书、单位证书和系统证书。 个人证书&#xff1a;CA中心给个人颁发的证书&#xff0c;仅代表个人身份&#xff0c;证书包含个人信息和个人公钥。 单位证书&#xff1a;CA中心给…

数字证书相关

概念 数字证书 数字身份&#xff08;digital identity&#xff09;是身份标识方式的一种&#xff0c;是一对“钥匙”&#xff0c;其中一个只有她/他本人知道&#xff08;即私钥&#xff09;&#xff0c;另一个是公开的&#xff08;公钥&#xff09;。把数字身份比喻成一个证件…

网站上数字证书原理你知道么?

前言&#xff1a;文中首先解释了加密解密的一些基础知识和概念&#xff0c;然后通过一个加密通信过程的例子说明了加密算法的作用&#xff0c;以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释&#xff0c;并讨论一下windows中数字证书的管理&#xff0c;最后演示…

CA证书(数字证书的原理)

转自&#xff1a;http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html&#xff08;感谢&#xff09; 文中首先解释了加密解密的一些基础知识和概念&#xff0c;然后通过一个加密通信过程的例子说明了加密算法的作用&#xff0c;以及数字证书的出现所起的作用。…

数字签名和数字证书的区别与联系

前言 最近在开发关于PDF合同文档电子签章的功能&#xff0c;大概意思就是在一份PDF合同上签名&#xff0c;盖章&#xff0c;使其具有法律效应。签章有法律效应必须满足两个条件&#xff1a; 能够证明签名&#xff0c;盖章者是谁&#xff0c;无法抵赖PDF合同在签章后不能被更改…

什么是数字证书

整理了几篇关于CA证书的经典文章&#xff1a; 文章目录 一、数字证书二、数字证书原理的形象理解 一、数字证书 什么是数字证书 一文看懂HTTPS、证书机构&#xff08;CA&#xff09;、证书、数字签名、私钥、公钥 二、数字证书原理的形象理解 数字证书原理与自建CA证书 第一…

数字证书

文章目录 前言一、什么是数字证书二、数字证书申请和验证1.证书申请流程2.浏览器如何验证证书 三、KeyTool自签名证书1.生成自签名证书2.导出证书3.查看证书4.构建CA签名证书 总结 前言 本文主要介绍什么是数字证书和如何使用keytool工具常用命令的使用。最后构建自签名证书。…