当前位置: 首页 > news >正文

通达信VCP形态选股公式,憋了好几天才写出来

VCP形态的英文”Volatility Contraction Pattern”的缩写,意思是“波动收缩形态”。VCP形态是全美交易冠军马克·米勒维尼的核心交易模式之一,在其著作《股票魔法师》中有详细介绍。

马克·米勒维尼把VCP形态比喻为湿毛巾,拧过一次后仍含水,重新拧一下,又挤出一些。继续拧紧毛巾,每次挤出的水越来越少,最后毛巾变干变轻。VCP每一次收缩,股价变得“更加紧实”,意味着供给减少,就像毛巾被拧干。经历几次收缩后,股票变得更轻,比之前有大量供给时更容易向一个方向移动。

 

一、VCP形态选股公式编写思路

编写指标描述形态一直是量化的难点,技术Pie就来挑战一下。VCP形态选股公式实在太难了,想了好多天,改了好几版,终于有所收获。

1、拟合曲线

最初使用布林线、振幅变小等方法描述VCP形态,效果不尽如人意。后来想到如果把高点低找出来,再进行比较,不就可以了,但是如何准确定位高点低是一个难题。考虑使用拟合曲线方法,首先想到均线,可是均线用小周期不够平滑,用大周期会严重偏离真实的高点低。最终想到了一个解决方案:用斜率对收盘价进行加权,用加权后的价格计算均线,但是得到的均线仍然不够平滑,再用指数加权移动平均计算,得到拟合曲线SL。

SL:=EMA(EMA(SLOPE(C,10)*5+C,10),2);{拟合曲线SL,斜率加权,EMA二次平滑}

经过二次处理的效果如下:

2、拟合曲线的底和顶

经过处理之后,曲线高点低就清晰了。中间一个周期SL值比前后都大,曲线SL的顶就找到了;中间一个周期SL值比前后都小,曲线SL的底就找到了。不需要拟合曲线的高点低和实际高点低完全相同,只要偏离幅度不大就可以。

DI:=REF(SL,1)<REF(SL,2) AND REF(SL,1)<SL;{拟合曲线底}

DING:=REF(SL,1)>REF(SL,2) AND REF(SL,1)>SL;{拟合曲线顶}

3、最高点

用BARSLAST和SUMBARS函数定位四个底距离现在的周期数,再用FINDHIGH函数计算底1和底2之间的最高价DINGH1,底2和底3之间的最高价DINGH2,底3和底4之间的最高价DINGH3。

TDI1:=BARSLAST(DI)+1;

TDI2:=SUMBARS(DI,2);

TDI3:=SUMBARS(DI,3);

TDI4:=SUMBARS(DI,4);

DINGH1:=FINDHIGH(H,TDI1,TDI2-TDI1,1);

DINGH2:=FINDHIGH(H,TDI2,TDI3-TDI2,1);

DINGH3:=FINDHIGH(H,TDI3,TDI4-TDI3,1);

 

4、最低点

类似的,计算出顶1和顶2之间的最低价DIL1,顶2和顶3之间的最低价DIL2。再计算顶1后面的低点DL,后面用来过滤跌破DIL1的情况。

TDING1:=BARSLAST(DING)+1;

TDING2:=SUMBARS(DING,2);

TDING3:=SUMBARS(DING,3);

DIL1:=FINDLOW(L,TDING1,TDING2-TDING1,1);

DIL2:=FINDLOW(L,TDING2,TDING3-TDING2,1);

DL:=FINDLOW(L,1,TDING1,1);

5、条件设置

经过上面的准备,计算出了K线顶和底的价格,可以开始设置条件。

A1:计算三个顶的最大值和最小值,两者幅度限制在5%之内。幅度可以自行调整,比如完全的平顶,三个顶价格相等,幅度就是0,当然这种情况比较罕见,不太现实。

MAXH:=MAX(DINGH1,MAX(DINGH2,DINGH3));

MINH:=MIN(DINGH1,MIN(DINGH2,DINGH3));

A1:=(MAXH-MINH)/MINH*100<5;

A2:比较两个底,后面一个底DIL1在前面一个底DIL2的-2%以上,也就是可以稍微低一点,但是大部分情况应该高一些。写成-2%是稍微放宽了条件。另外限制DIL大于DIL1,过滤跌破DIL1的情况。

A2:=(DIL1-DIL2)/DIL2*100>-2 AND DL>DIL1;

A3:再加上触发信号,创20日新高,阳线。

A3:=H=HHV(H,20) AND C>O;

二、VCP形态指标公式

SL:=EMA(EMA(SLOPE(C,10)*5+C,10),2);

DI:=REF(SL,1)<REF(SL,2) AND REF(SL,1)<SL;

DING:=REF(SL,1)>REF(SL,2) AND REF(SL,1)>SL;

TDI1:=BARSLAST(DI)+1;

TDI2:=SUMBARS(DI,2);

TDI3:=SUMBARS(DI,3);

TDI4:=SUMBARS(DI,4);

DINGH1:=FINDHIGH(H,TDI1,TDI2-TDI1,1);

DINGH2:=FINDHIGH(H,TDI2,TDI3-TDI2,1);

DINGH3:=FINDHIGH(H,TDI3,TDI4-TDI3,1);

TDING1:=BARSLAST(DING)+1;

TDING2:=SUMBARS(DING,2);

TDING3:=SUMBARS(DING,3);

DIL1:=FINDLOW(L,TDING1,TDING2-TDING1,1);

DIL2:=FINDLOW(L,TDING2,TDING3-TDING2,1);

DL:=FINDLOW(L,1,TDING1,1);

MAXH:=MAX(DINGH1,MAX(DINGH2,DINGH3));

MINH:=MIN(DINGH1,MIN(DINGH2,DINGH3));

A1:=(MAXH-MINH)/MINH*100<5;

A2:=(DIL1-DIL2)/DIL2*100>-2 AND DL>DIL1;

A3:=H=HHV(H,20) AND C>O;

AA:=A1 AND A2 AND A3;

XG:=FILTER(AA,20);

DRAWICON(XG,L,1);

STICKLINE(XG,H,L,0,0),COLORYELLOW;

STICKLINE(XG,O,C,3,0),COLORYELLOW;

 

 

三、VCP形态选股公式

SL:=EMA(EMA(SLOPE(C,10)*5+C,10),2);

DI:=REF(SL,1)<REF(SL,2) AND REF(SL,1)<SL;

DING:=REF(SL,1)>REF(SL,2) AND REF(SL,1)>SL;

TDI1:=BARSLAST(DI)+1;

TDI2:=SUMBARS(DI,2);

TDI3:=SUMBARS(DI,3);

TDI4:=SUMBARS(DI,4);

DINGH1:=FINDHIGH(H,TDI1,TDI2-TDI1,1);

DINGH2:=FINDHIGH(H,TDI2,TDI3-TDI2,1);

DINGH3:=FINDHIGH(H,TDI3,TDI4-TDI3,1);

TDING1:=BARSLAST(DING)+1;

TDING2:=SUMBARS(DING,2);

TDING3:=SUMBARS(DING,3);

DIL1:=FINDLOW(L,TDING1,TDING2-TDING1,1);

DIL2:=FINDLOW(L,TDING2,TDING3-TDING2,1);

DL:=FINDLOW(L,1,TDING1,1);

MAXH:=MAX(DINGH1,MAX(DINGH2,DINGH3));

MINH:=MIN(DINGH1,MIN(DINGH2,DINGH3));

A1:=(MAXH-MINH)/MINH*100<5;

A2:=(DIL1-DIL2)/DIL2*100>-2 AND DL>DIL1;

A3:=H=HHV(H,20) AND C>O;

AA:=A1 AND A2 AND A3;

XG:FILTER(AA,20);

 

四、注意点

最后的触发条件是创20日新高H=HHV(H,20) ,这个条件是我技术Pie自己设置的,并没有按照《股票魔法师》书中的定义写。这样写触发的信号可以早一点,方便后续跟踪观察。另外,一个好的VCP应该要在股价的“第二阶段”,本次编写的VCP形态选股公式没有加入这个条件,务必注意。

后续有改进再说吧,编写这个公式已经把我折磨得够呛了。

关注技术Pie,学习更多通达信指标公式编写知识。

友情提醒:本文仅供学习交流技术指标公式,不构成任何投资建议。投资有风险,入市需谨慎!

相关文章:

通达信VCP形态选股公式,憋了好几天才写出来

VCP形态的英文”Volatility Contraction Pattern”的缩写&#xff0c;意思是“波动收缩形态”。VCP形态是全美交易冠军马克米勒维尼的核心交易模式之一&#xff0c;在其著作《股票魔法师》中有详细介绍。 马克米勒维尼把VCP形态比喻为湿毛巾&#xff0c;拧过一次后仍含水&…...

vue 知识储备

vue2 和 vue3 的区别 模块拆分:vue3采用 compnent API 更注重模块上的拆分,而vue2中则需要使用完整的vuejs,无法使用单独的模块重写API:vue2组件方法挂载到实例中未使用也会被打包,vue3通过 tree-shaking机制,实现按需引入,减少用户打包后体积数据双向绑定:vue2使用 Ob…...

MySQL表的增删查改

目录 一 插入 1 基本语法 ①全列插入 ②指定列插入 ③多条记录插入 ④冲突更新 二 查询 查询全部数据 指定列查询 显示 拼接 取别名 去重查找 where 逻辑运算符和比较运算符 结果排序 Limit group by 分组 聚合函数 对于count 对于sum 对于group by 相关的语…...

详解C语言string.h中常用的14个库函数(三)

本篇博客继续讲解C语言string.h头文件中的库函数。本篇博客计划讲解3个函数&#xff0c;分别是&#xff1a;strstr, strtok, strerror。其中strstr函数我会用一种最简单的方式模拟实现。 strstr char * strstr ( const char * str1, const char * str2 );strstr可以在str1中查…...

无人机视频与GIS融合三维实景怎么实现?

无人机视频与GIS融合三维实景怎么实现?无人机三维GIS作为一项新兴的测绘重要手段&#xff0c;具有续航时间长、成本低、机动灵活等优点&#xff0c;为城市的规划建设带来极大便利。 那么此项技术有什么样的特点呢?下面智汇云舟就带大家一起来了解一下。 三维是将采集以及经运…...

瞬间让你效率提高一倍的高效学习方法

方法不对&#xff0c;努力白费&#xff1b;方法对了&#xff0c;事半功倍&#xff01;在学习的过程中我们会遇到各种困难与阻碍&#xff0c;如何发现并优化自己的学习方法就变得尤为重要。高效学习方法是指通过科学的、有效的方法来提高学习效率&#xff0c;实现更好的学习成果…...

442. 数组中重复的数据|||41. 缺失的第一个正数|||485. 最大连续 1 的个数

442. 数组中重复的数据 题目 给你一个长度为 n 的整数数组 nums &#xff0c;其中 nums 的所有整数都在范围 [1, n] 内&#xff0c;且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数&#xff0c;并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅…...

中国地图标准坐标和投影参数

目录 一、地理坐标 二、投影坐标 三、ArcGIS投影变换 四、说明 一、地理坐标 GCS_Krasovsky_1940&#xff08;克拉索夫斯基_1940椭球体&#xff09; 具体参数如下图&#xff1a; 每个国家或地区都有各自的基准面&#xff0c;我们通常所说的北京54坐标系、西安80坐标系实际上…...

CNN中卷积层、池化的计算公式

卷积计算公式 1、卷积层输入特征图(input feature map)的尺寸为&#xff1a;(batch_size,Channel,H,W) H(input)表示输入特征图的高 W(input)表示输入特征图的宽 C(input)表示输入特征图的通道数&#xff08;如果是第一个卷积层则是输入图像的通道数&#xff0c;如果是中间…...

基类派生类多态虚函数?

通常在层次关系的根部有一个基类&#xff0c;其他类则直接或间接的从基类继承而来&#xff0c;这些继承得到的类称为派生类。基类负责定义在层次关系中所有类共同拥有的成员&#xff0c;而每个派生类定义各自特有的成员。 成员函数与继承派生类可以继承其基类的成员, 然而有时…...

像素是什么

像素分为设备像素和设备无关像素。 下面说说来龙去脉。 一、显示器 显示图像的电子设备。 &#xff08;一&#xff09;显示器种类 1.LCD LCD&#xff08;Liquid crystal display&#xff09;&#xff0c;是液体晶体显示&#xff0c;也就是液晶显示器&#xff0c;LCD具有功耗低…...

NAT转换

目录标题 NAT&#xff1a;网络地址转换&#xff08;cisco篇&#xff09;一对一&#xff08;静态&#xff09;一对多&#xff08;动态&#xff09;多对多&#xff08;动、静均可&#xff09;端口映射&#xff08;静态&#xff09; nat:网络地址转换&#xff08;华为篇&#xff0…...

设计模式:创建者模式 - 单例模式

文章目录 1.介绍2.单例模式的结构3.单例模式的实现&#xff08;饿汉、懒汉&#xff09;饿汉式-方式1&#xff08;静态变量方式&#xff09;饿汉式-方式2&#xff08;静态代码块方式&#xff09;懒汉式-方式1&#xff08;线程不安全&#xff09;懒汉式-方式2&#xff08;线程安全…...

C++语言亚马逊国际获取AMAZON商品详情 API接口(

跨境电子商务是一种全新的互联网电商模式&#xff0c;运用电子化方式促成线上跨境交易&#xff0c;利用跨境物流运送商品&#xff0c;有利于打破传统的贸易格局&#xff0c;成为新的经济增长点。对我国来说&#xff0c;跨境电商平台正用一种全新的力量改变我国产业链的结构&…...

在程序里面执行system(“cd /某个目录“),为什么路径切换不成功?

粉丝提问&#xff1a; 彭老师&#xff0c;问下&#xff0c;在程序里面执行system(“cd /某个目录”)&#xff0c;这样会切换不成功&#xff0c;为啥呢 实例代码&#xff1a; 粉丝的疑惑是明明第10行执行了cd /media操作&#xff0c; 为什么12行执行的pwd > test2.txt 结…...

c++ 对类与对象的基础框架+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

绪论 上一章&#xff0c;我们将c入门的基础知识进行了学习&#xff0c;本章其实才算真正的跨入到c开始可能比较难&#xff0c;但只有我们唯有不断的前进&#xff0c;才能斩断荆棘越过人生的坎坷&#xff01; 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&…...

关于Open Shift(OKD) 中应用管理部署的一些笔记

写在前面 因为参加考试&#xff0c;会陆续分享一些 OpenShift 的笔记博文内容为介绍 openshift 不同的创建应用的方式&#xff0c;包括&#xff1a; 基于 IS 创建应用基于镜像创建应用基于源码和 image 创建应用基于源码和 IS 创建应用基于模板创建应用 学习环境为 openshift v…...

【linux】对于权限的理解

权限 Linux权限的概念用户之间的切换 Linux权限管理文件权限操作文件的人Linux文件默认权限的设置权限掩码 所属组/其他删除拥有者创建的文件文件拥有者、所属组的修改修改文件拥有者修改文件所属组一次性修改拥有者和所属组 目录的执行权限 Linux权限的概念 首先&#xff0c;…...

测试人必备技能:如何进行WebSocket接口测试?

目录 前言 WebSocket介绍 HTTP与WebSocket的区别 二者关系 WebSocket测试方法 使用Postman 使用Jmeter 使用Python 结语 前言 随着Web应用的日益普及&#xff0c;WebSocket作为一种全双工通信协议&#xff0c;在移动端、游戏、视频会议等方面得到广泛应用。 而对于需…...

【Android FrameWork (三)】- SystemServer

文章目录 知识回顾启动第一个流程initZygote的流程 前言源码分析1.system_server2.SystemServer.main3,startBootstrapServices4,startService 拓展知识LoadApkcontext 对于Android context 大家是怎么理解的&#xff1f;LocalServices.java: addServece方法中 ArrayMap和HashM…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...