MT4平台大字详细设置方法(3)

2020-02-21 18:35

#property indicator_color1 LightSeaGreen #property indicator_color2 Red //---- input parameters extern int KPeriod=5; extern int DPeriod=3; extern int Slowing=3; //---- buffers

double MainBuffer[]; double SignalBuffer[]; double HighesBuffer[]; double LowesBuffer[]; //----

int draw_begin1=0; int draw_begin2=0;

//+------------------------------------------------------------------+

//| Custom indicator initialization function //+------------------------------------------------------------------+ int init() {

string short_name;

//---- 2 additional buffers are used for counting. IndicatorBuffers(4);

SetIndexBuffer(2, HighesBuffer); SetIndexBuffer(3, LowesBuffer); //---- indicator lines

SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, MainBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, SignalBuffer);

//---- name for DataWindow and indicator subwindow label

short_name=\ IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,\//----

draw_begin1=KPeriod+Slowing; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); //----

return(0); }

//+------------------------------------------------------------------+

//| Stochastic oscillator | |

//+------------------------------------------------------------------+ int start() {

int i,k;

int counted_bars=IndicatorCounted(); double price; //----

if(Bars<=draw_begin2) return(0); //---- initial zero

if(counted_bars<1) {

for(i=1;i<=draw_begin1;i++) MainBuffer[Bars-i]=0; for(i=1;i<=draw_begin2;i++) SignalBuffer[Bars-i]=0; }

//---- minimums counting i=Bars-KPeriod;

if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) {

double min=1000000; k=i+KPeriod-1; while(k>=i) {

price=Low[k];

if(min>price) min=price; k--; }

LowesBuffer[i]=min; i--; }

//---- maximums counting i=Bars-KPeriod;

if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) {

double max=-1000000; k=i+KPeriod-1; while(k>=i) {

price=High[k];

if(max

HighesBuffer[i]=max;

i--; }

//---- %K line

i=Bars-draw_begin1;

if(counted_bars>draw_begin1) i=Bars-counted_bars-1; while(i>=0) {

double sumlow=0.0; double sumhigh=0.0;

for(k=(i+Slowing-1);k>=i;k--) {

sumlow+=Close[k]-LowesBuffer[k];

sumhigh+=HighesBuffer[k]-LowesBuffer[k]; }

if(sumhigh==0.0) MainBuffer[i]=100.0; else MainBuffer[i]=sumlow/sumhigh*100; i--; }

//---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars;

//---- signal line is simple movimg average for(i=0; i

SignalBuffer[i]=iMAOnArray(MainBuffer,Bars,DPeriod,0,MODE_SMA,i); //----

return(0); }

//+------------------------------------------------------------------+


MT4平台大字详细设置方法(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:操作系统进程管理实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: