客服热线:18391752892

[转帖]MT编程入门教程(2)

   日期:2019-01-12     浏览:765    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 其实,都可以,不过是坐标的规格化,使得它们在相近的数据范围,就可以画在一起。
看你自己的习惯。画在价格窗口,方便和价格同时感受。
//+本例展示了如何把MA转换后画到独立窗口,同样也可以把独立窗口的指标改画在价格窗口
//要达到这些目的,需要考虑两个方面 1 估计数据的范围,以确定以什么为单位? 2 确定坐标偏移,也就是确定坐标零点。
//目的就是让你要画的多条线在同样的数值范围,这样才能同时画出,达到参考目的
//比如-1000到+1000和0到+4这样两套数据要变换后才能在同图画出,
//转换方法复习中学数学直角坐标系的缩放和平移部分-------------------------+

下载附件

[转帖]MT编程入门教程(2)----指标画哪里?价格窗口还是独立窗口?

2011-11-30 23:45 上传


 // MA-Properties
 extern double MovingFast   = 7;   
 extern   double MovingSlow   = 13;   
 extern   double MovingSlow02   = 13;   
 extern   int MaM=2;
 extern   int MaP=2;
 extern   int MaM0=3;
 extern   int MaP0=3;如改
   
 extern   int range1 = 11;
 extern   int range2 = 4;
   
 int i;
   
 // Buffer
 //// 共画2条线,用2个数组存储线数据
 double bufferMA1[];
 double bufferMA2[];
 //+------------------------------------------------------------------+
 //| Custom indicator initialization function           |
 //+------------------------------------------------------------------+
 int init()
 {
 //// 设置2条线的顺序编号,画法,对应数组,
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, bufferMA1 );
    SetIndexStyle( 1, DRAW_LINE );
    SetIndexBuffer( 1, bufferMA2 );
    return(0);
 }
 int deinit() {   return(0);}
 int start()
 {
 double Buffer10,Buffer11,Buffer20,Buffer21,Buffer30, Buffer31;
 int countedBars = IndicatorCounted();
    //---- check for possible errors
 if ( countedBars 0 )   { return(-1);   }
 if ( countedBars 0 ) { countedBars--; }
 int   barsToCount = Bars - countedBars;
 for ( int i = barsToCount; i i-- )
 {
    //// 开始计算
    Buffer20 = iMA(NULL,0,MovingFast,0,MaM,MaP, i) ;//MovingFast
    Buffer30 = iMA(NULL,0,MovingSlow,0,MaM,MaP, i) ;//MovingSlow
    Buffer21 = iMA(NULL,0,MovingFast,0,MaM,MaP, i+range1) ;
    Buffer31 = iMA(NULL,0,MovingSlow02,0,MaM,MaP, i+range2) ;
    //赋值给数组以便画线,使用Point使得坐标以点为单位,保证本指标对不同货币的一致y轴单位和视觉效果
    bufferMA1 i = MathRound((Buffer20-Buffer21)/Point);
    bufferMA2 i = MathRound((Buffer30-Buffer31)/Point);
 }
 return(0);
 }
上面把两个MA的差值画在独立窗口,当然若把差值再加上一个MA,就可以画在价格窗口。
MA及其各种变化是最常用的指标基础。MA一般常用来替代价格本身 再做进一步计算。
ltRE #property indicator_chart_window
 //......
    Buffer10 = iMA(NULL,0,MovingFast*6,0,MaM,MaP, i)
    bufferMA1 = MathRound(Buffer20-Buffer21)+Buffer10 ;
    bufferMA2 = MathRound(Buffer30-Buffer31)+Buffer10 ;
 //.........
就可以把它们跌加到价格上画了。
你只需修改Buffer10 ,Buffer20, Buffer21 Buffer30, Buffer31为你需要的,在考虑一下数据范围坐标问题,你可以画任意的指标了。[/td][/tr]
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行