关于外汇stddev通道的一些信息
在学习中,每个人都是平等的,你所学到的知识不会背叛你,你所掌握的知识也会牢牢的在你脑海里,你现在所需要的就是要如何运用知识。百吉财经介绍关于外汇stddev通道。相信看完本文,你的疑惑会相对减少。
- 1、mt4编程如何限制一根线刚止盈出场又进场
- 2、外汇MT4平台里设好指标后,里面的移动平均项里的(移动平均)里的四个选项都表示什么意思?有什么不同?
本文提供以下相关文章,点击可跳转详情内容,欢迎阅读!
mt4编程如何限制一根线刚止盈出场又进场 (一)
答1、画水平线:
首先,在MetaEditor编辑器中创建一个客户指标文件,名字可以任意,我这里就把它命名为Lesson1_DrawLine。
然后,在其中的start()函数中添加下面的代码:
添加完毕后,按F5编译代码,然后在MT4中打开任意一张图表,把编译好的指标Lesson1_DrawLine添加到图表上,我们可以看到图表上已经画出了一条横线:
现在来解释一下上面的代码。
上面的代码使用了ObjectCreate这个函数。
ObjectCreate是一个非常重要的函数,在后面的画图教程中会多次使用到这个函数。
在上面的例子中,ObjectCreate函数有5个参数,第1个”Hline”是对你要画的横线起一个名字,这个名字是可以任意的;
第2个OBJ_HLINE是MT4系统默认的一个变量,表示横线,意义是告诉系统你准备画一条横线;
第3个参数是0,表示在主窗口进行画图的操作,这里暂时不对这个参数作详细的说明,后面我会专门用一个专题来将画图窗口的知识;
第4个参数也是0,这个代表的是横坐标(X轴),
第5个参数是Bid,这个是MT4系统默认的一个变量,意思是当前的卖出价。
这里重点说一下最后两个参数:
在MT4中,图表的横坐标(X轴)代表时间,纵坐标(Y轴)代表价格,
二、写文字:
学完了前面的例子后,我相信很多朋友都能在图表上随意画出自己想要的各种图形和符号了,那么假如想在图表上加入一些文字呢?这个问题是初学MT4编程的朋友经常提出的一个问题,答案还是用ObjectCreate和ObjectSet这对配合得天衣无缝的函数来实现!
在MT4图表上添加文字,有两种方法,一种是用Comment函数,缺点是只能在图表的左上角添加,且不能对文字的各种特性调整,如大小、颜色等;另外一种就是我们下面将要学到的方法,用ObjectCreate函数来创建。ObjectCreate函数可以创建两种类型的文字,一种是OBJ_TEXT,一种是OBJ_LABEL。这两种类型的区别:OBJ_TEXT是以时间和价格作为坐标的,且可以设置显示角度;OBJ_LABEL是以当前图表可视区域的相对位置作为坐标的,且不能调整显示角度。下面我们用例子来加深理解。
新建一个指标文件,命名为Lesson3_DrawText_1,在start函数输入如下代码:
编译后添加Lesson3_DrawText_1指标到图表:
如果我想让”Hello World!”以与水平线成30度的角度显示,该如何做呢?在上面的代码后面添加一句:
重新编译后效果如下:
利用ObjectSet函数来调整显示文字的角度属性:OBJPROP_ANGLE,30表示30度。
既然已经有OBJ_TEXT了,为什么MT4中还要再多一个OBJ_LABEL呢?
关键就是两者的坐标性质不同。OBJ_TEXT的坐标是时间和价格,而OBJ_LABEL的坐标是以当前可视区域的相对位置作为坐标。
当你移动图表的时候,会发现用OBJ_TEXT创建的文字的位置会随着图表的移动而变化,但用OBJ_LABEL创建的文字则始终不变,除非你更改了屏幕分辨率它才会变化,当你想创建一些始终显示在某个固定位置的文字时,用OBJ_LABEL;如果想在某个固定的价格或时间位置显示文字,用OBJ_TEXT。
由于精力所限,我就不再演示OBJ_LABEL的使用方法了,大家可以参照帮助文档来使用,记住坐标的性质不同就行了。
第四节如何画曲线
这是MT4编程开发实战系列的第4站。在前面3节我们分别学习了直线、椭圆和矩形、文字及符号的创建方法,这次我们要学习一下如何在图表上创建曲线。
虽然MT4中已经自带了很多曲线类型的指标,如各种不同的均线、布林带等等,但经常有些朋友还需要创建一些自己独有的曲线,系统自带的指标已经无法满足需求,这时我们就需要通过MT4编程来开发自己的曲线指标了。
下面我们一起通过实例来学习如何画曲线。假设我现在想把图表上每根K线的中间部分(即最高价与最低价之和的均值)用一条曲线连接起来。
首先创建一个新的指标文件,命名为Lesson4_DrawCurve_1。在指标文件的开始部分,添加如下语句:
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
Double ExtMapBuffer[ ];
红色部分为我们添加的语句。然后在init函数内添加如下语句:
Int init()
{
//-----indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer);
//-----
Return(0);
}
在start函数内添加如下语句:
Int start()
{
Int counted_bars=IndicatorCounted();
Int cnt;
//----
If(counted_bars>0) counted_bars--;
Int limit=Bars-counted_bars-1;
For(cnt=0;cnt<limit;cnt++)
{
ExtMapBuffer[cnt]=(High[cnt]+Low[cnt])/2;
}
//-----
Return(0);
}
编译后,将Lesson4_DrawCurve_1指标添加到图表上,会看到我们已创建了一条红色的曲线,将图表上每根K线的中间部分连接了起来:
下面来解释一下上面代码的意思。首先我们在指标文件的开始部分插入了3条语句,前面两条分别是:
#property indicator_buffer 1的意思是本指标将使用一个指标缓存(最多只能有8个指标,编码是从0至7);
#property indicator_color Red的意思是创建的指标将用红色显示。#property的意思是给指标文件添加一个编译参数(注:由于这些东西涉及到程序开发中比较专业的部分了,本教程的主旨是“实用为主”,所以我将不会对一些太过专业的部分进行深入探讨,只需知道应该这样做就行了。
有兴趣的朋友可以私下聊)。假如你想创建两条曲线,则可以写成:#property indicator_buffer 2;假如想改变曲线的颜色,则可以把Red数值改为其它颜色,如Yellow、Green等。
在添加了两个编译参数后,我们还创建了一个double类型的数组ExtMapBuffer[],这个数组的作用是储存每根K线中间部分的数值,画图的时候就根据这个数组里面的数值来画。
在init函数中,我们用到了SetIndexStyle和SetIndexBuffer这两个MT4中的系统函数。SetIndexStyle的意思是设置我们要画的图形的类型,SetIndexStyle中的第一个参数0,表示我们要对第一个指标的样式进行设置,在MT4中,最多只能设置8个指标,编码是从0开始至7结束;第二个参数DRAW_LINE是MT4默认的系统变量,意思是告诉MT4我们将要在图表上画线。如果我们现在想在每根K线的中间部分画个箭头,该如何做呢?用DRAW_ARROW替换DRAW_LINE就行了,替换后的效果如下:
刚才我们画出来的曲线是一条连续的曲线,如果我想画一条虚线该如何做呢?给SetIndexStyle增加一个参数就行了,现在我们把SetIndexStyle函数改写为如下这样:
SetIndexStyle(0,DRAW_LINE,STYLE_DASH);
编译后重新添加到图表上,会发现现在的曲线已经是一条虚线了。
同理,如果用STYLE_DOT替换STYLE_DASH,就可以画出一条由点组成的曲线了,更多的类型大家可以通过查找编程文档获得。
现在,假如我们觉得曲线太细了,想加粗该怎么做呢?这时就需要给SetIndexStyle函数增加第4个参数了:
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4);
SetIndexStyle的第4个参数4,意思是把曲线的宽度设置为4(从1开始,最大为5)。
最后,假如想把刚才画的线更改一下颜色,可以用到SetIndexStyle的第5个参数,像下面这句:
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4,Blue);
最后一个参数Blue的意思是把曲线的颜色改为蓝色。
第五节如何创建警报
在前面几节,我们学习了MT4编程开发中画图方面的一些基础知识,这次我们来学习一下如何在MT4编程中应用报警功能。
大家都知道,外汇市场是24小时不间断的,而人的精力是有限的,那么,在休息的时候如果价位到达了自己的目标价位,这时候该怎么办呢?答案是利用MT4的警报功能。在MT4平台上如何设置警报这里就不详述了,具体可参考帮助文档,这里说一下如何通过编程来实现。
首先,我们来实现一个最简单的指标:当价格到达指定价位时,进行报警。
新创建一个指标文件,命名为:Lesson5_Alert_1。
在程序头部加入如下一句:
#property indicator_chart_window
Extern double Price;
其中红色部分为我们添加的语句。Extern的意思是Price为一个外部变量,可以在指标运行期间动态进行修改。
然后在start函数中加入如下语句:
Int start()
{
Int counted_bars=IndicatorCounted();
//----
If(Bid==Price)
Alert(“到达指定价位!”);
//----
Return(0);
}
编译后运行,然后把Lesson5_Alert_1指标添加到图表上,并设置好Price变量,当当前的卖出价等于设定的Price价格时,则会弹出如下的报警窗口:
Alert函数的意思是当满足if内设定的条件时,弹出一个警报窗口,把Alert函数内设定的内容显示出来,同时会发出警报声。
如果我把Lesson5_Alert_1指标同时添加到很多个货币对上,那么当指标弹出报警窗口时,我怎么才能知道是哪个货币对在报警呢?这时就必须为报警内容添上货币对的名称了。现在我们把刚才的语句改写如下:
If(Bid==Price)
Alert(Symbol()+“到达指定价位!”);
重新编译并添加到图表上,当当前卖出价格等于Price指定的价格时,将会弹出如下的报警窗口:
可以看到报警窗口内已经显示出是哪个货币对在报警了,这都是Symbol()函数的功劳,Symbol函数的作用是获得当前指标所在图表的货币对的名称。与Alert函数类似的还有MessageBox函数,有兴趣的朋友可以自己查看帮助文档。
现在设想一下,假如同样是EURUSD货币对,同时打开了5分钟图、30分钟图、1小时图,并在每张图上都添加了Lesson5_Alert_1指标,那么,指标报警时光有名称还不足够了,这时可把语句改写如下:
If(Bid==Price)
Alert(Symbol()+“在”+Period()+“分钟图上到达指定价位!”);
此时,当卖出价到达指定价位后,弹出的报警窗口如下图所示:
Period函数的作用是获取指标所在图表的时间周期。
附:《MT4》编程的输出方式
1、画图:
MT4语言编程的基本输出方式就是“画”(动词)。这个“画“可以画出最常见的线图,也可以画出提示用的箭头、柱状图、趋势线等。
决定“画”的输出样式的函数是: SetIndexStyle
它应用在我们前面说过的系统函数init()的内容里面,一般通过在函数init()里面的SetIndexStyle设定,来决定哪个要画成线图、哪个要画成箭头。
举例:
int init()
{
IndicatorBuffers(2); //这个函数表示有两个数组的数值用于画图
SetIndexBuffer(0,MAUp) ;//表示前面定义的数组MAUp的数值用于画第一个指标的图
SetIndexBuffer(1,MADown); //表示前面定义的数组MADown的数值用于画第二个指标的图
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2); //参数里面:0表示设定第一个数组,参数DRAW_HISTOGRAM表示画柱状图,参数STYLE_SOLID表示画图的样式为实心图,参数2表示画徒的线宽度为2。
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);//参考上面
提示:凡是你不懂意思的参数或者函数,将光标移动到它上面,按F1,则MetaEditor就会给你显示函数或者参数的意思和用法
2、 标记文字:
函数为Comment(),
使用这个函数可以输出文字到屏幕K线图的左上角。我们一般用它显示一些记忆性的内容。因为左上佳的字体比较小,文字内容的变化不容易被察觉到,所以一般不用她来做提示性的功能。
3、 弹出窗口报警:
函数为Alert(),
使用这个函数,当运他的时候,将弹出一个报警窗口,并发出一个短促的警报声音。使用它可以在满足条件的重要时刻,弹出报警窗口,及时察觉这种变化。
注意:这个函数一般放在条件语句满足之后运行,不要将满足条件设得很频繁,否则报警窗口经常弹出来比较烦人。还有如果你是对当前K线进性判断,要注意到一个编成问题,当前K线的价格还在不停变动中,每变动一次都将执行一次系统函数Start(),因此您的Alert()条件如果是和当前K线的Close关系密切的话,在满足条件后,将会来一个价格就报一次窗口,也很讨厌。
4、 文件输出:
MT4可以读取和写入一般文本文件,因此你可以将一些运行中的重要动态数据通过MT4的文件函数写入具体文件中。这些功能应用较少。有兴趣的朋友可以直接查看MetaEditor右侧帮助栏的File Functions函数分类。
5、 对象:
MT4可以使用程序来创造很种类型的“对象”放在图表上面,这种功能主要用于将图表打扮的更加漂亮以及标示出更多重要的程序计算出来的数据,具体用法后面再慢慢说。MT4可以创造的“对象”类型如下:
OBJ_VLINE 0 垂直线,使用第一坐标部分时间
OBJ_HLINE 1 水平线,使用第一坐标部分价格
OBJ_TREND 2 趋势线,应用2个坐标
OBJ_TRENDBYANGLE 3 趋势角度,应用1个坐标。应用ObjectSet()功能设置线的角度(角度的趋势线)
OBJ_REGRESSION 4 回归线,应用前2个坐标的时间部分
OBJ_CHANNEL 5 通道,应用3个坐标
OBJ_STDDEVCHANNEL 6 标准偏离通道,应用前2个坐标的时间部分
OBJ_GANNLINE 7 甘氏线,应用2个坐标,但第2个坐标的价格部分
OBJ_GANNFAN 8 甘氏扇形,应用2个坐标,但第二个坐标价格部分
OBJ_GANNGRID 9 甘氏网格线,应用2个坐标,但第2个坐标的价格部分
OBJ_FIBO 10 费波纳切搞通撤回,应用2个坐标
OBJ_FIBOTIMES 11 费波纳切周期线,应用2个坐标
OBJ_FIBOFAN 12 费波纳切扇形图,应用2个坐标
OBJ_FIBOARC 13 费波纳切弧线,应用2个坐标
OBJ_EXPANSION 14 费波纳切延展线,应用3个坐标
OBJ_FIBOCHANNEL 15 费波纳切波通道,应用3个坐标
OBJ_RECTANGLE 16 长方形,应用2个坐标
OBJ_TRIANGLE 17 三角形,应用3个坐标
OBJ_ELLIPSE 18 椭圆形,应用2个坐标
OBJ_PITCHFORK 19 安德鲁分叉线,应用3个坐标
OBJ_CYCLES 20 圆形,应用2个坐标
OBJ_TEXT 21 文本,应用1个坐标
OBJ_ARROW 22 箭头,应用1个坐标
OBJ_LABEL 23 文字标签,应用1个坐标
杨氏补:如何画射线与线段
1、画射线:
ObjectCreate("射线名",OBJ_TREND,0,X1,Y1,X2,Y2);
如下语句:
ObjectCreate("X1LINE",OBJ_TREND,0,Time[20],High[20],Time[5],Low[5]);
编译后如下图所示:
外汇MT4平台里设好指标后,里面的移动平均项里的(移动平均)里的四个选项都表示什么意思?有什么不同? (二)
答MT4中常用指标的英汉对应
1. 标准差通道(布林通道,布林格带)
Standard Deviation Band (Bolling Band)
2 移动平均线(MA)
Moving Average
(1)算术移动平均线(SMA)
Simple Moving Average
(2)指数加权移动平均线(EMA)
Exponential Moving Average
(3)线性加权移动平均线(WMA)
Weighted Moving Average
(4)移动平均线周期横向移动(时间延迟移动)
MA Periods of horizontal shift
2. 指标(Indicator)
指数平滑异同移动平均指标(MACD)
Moving Average Convergence /Divergence
相对强弱指标(RSI)
Relative Strength Index
方向性(动向)指标(DMI)
Directional Movement Index
停损并反做指标(抛物线指标)SAR(Parabolic)
Stop And Reversal
随机指标(KDJ)
Stochastic Oscillator
威廉指标(%R)
Williams %R
动量指标(MTM)
Momentum
价格震荡指标(POI)
Price Oscillator Index
能量趋向指标(能量潮)(OBV)
On Balance Volume
价量趋势指标(PVT)
Price Volume Trend
通道指标(CCI)
Commodity Channel Index
累计摆动指标(ASI)
Accumulation Swing Index ASI
标准背离指标(SDI)
Standard Deviation Index SDI
时间连续预测(TSF)
Time Series Forecast TSF
基础指标(UOI)
Ultimate Oscillator Index UOI
价格参数指标(MPI)
Mediam Price Index
3. 画线研究(Edit Linear Studies)
趋势线
Trendline
平行线
Parallel Line
甘氏(江恩)角度线
Trendline Angle /Grid
菲波纳奇弧形线
Fibonacci Arcs
菲波纳奇扇形线
Fibonacci Fan Lines
菲波纳奇时间周期线
Fibonacci Time Zones
阻挡线
Speed Resistance Lines
安得烈斯中轨线(安得烈斯投掷叉)
Andrew Pitchfork
象限线
Quardrant Lines
虽然生活经常设置难关给我们,但是让人生不都是这样嘛?一级级的打怪升级,你现在所面临的就是你要打的怪兽,等你打赢,你就升级了。所以遇到问题不要气馁。如需了解更多外汇stddev通道的信息,欢迎点击百吉财经其他内容。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息储存空间服务,不拥有所有权,不承担相关法律责任。如有发现本站涉嫌抄袭侵权/违法违规的内容,请发送邮件,一经查实,本站将立刻删除。