• 注册
    • 中文
    • English
  • 注册
  • 趋势指标 趋势指标 关注:8 内容:6362

    MT4 MT5外汇EA编程教程大全之常用函数(一)

  • 查看作者
  • 打赏作者
  • 趋势指标
  • Lv.9
    神隐会员
    靓号:1322336
    EA+

    对于每个执行的MQL4程序,一定数量的变量设定可以轻松应对图表中的价格状态:
    智能交易,脚本或者是客户指标。.
    资料应用到可变量的模型中来。
    可以由预定义的变量分开处理。
    这些数据会在开启后应用 RefreshRates()函数更新。
    Ask
    Bars
    Bid
    Close
    Digits
    High
    Low
    Open
    Point
    Time
    Volume
    Ask
    double Ask
    对于当前货币对的最新卖价格。使用RefreshRates()函数更新。
    参见 MarketInfo().
    示例:
    if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
    {
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,
    “My order #2”,3,D’2005.10.10 12:30′,Red);
    return;
    }
    Bars
    int Bars
    返回图表中的柱数。
    参见 iBars().
    示例:
    int counter=1;
    for(int i=1; i<=Bars; i++)
    {
    Print(关闭[i-1]);
    }
    Bid
    double Bid
    对于当前货币对的最新买价格。使用RefreshRates()函数更新。
    参见 MarketInfo().
    示例:
    if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
    OrderSend(“EURUSD”,OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,
    “My Order #2”,3,D’2005.10.10 12:30′,Red);
    return(0);
    }
    Close
    double Close[]
    系列数组包含当前图表每个柱的收盘价格。
    系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为Bars-1.
    参见 iClose().
    示例:
    int handle = FileOpen(“file.csv”, FILE_CSV|FILE_WRITE, “;”);
    if(handle>0)
    {
    // 表格栏标题记录
    FileWrite(handle, “Time;Open;High;Low;Close;Volume”);
    // 数据记录
    for(int i=0; i<Bars; i++)
    FileWrite(handle, Time, Open, High, Low, Close, Volume);
    FileClose(handle);
    }
    Digits
    int Digits
    返回当前货币对的汇率小数位
    参见 MarketInfo().
    示例:
    Print(DoubleToStr(Close[0], 小数位));
    High
    double High[]
    系列数组包含当前图表每个柱的最高价格。
    系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
    参见 iHigh().
    示例:
    //—- 最大值
    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

    k–;
    }
    HighesBuffer=max;
    i–;
    }
    //—-
    Low
    double Low[]
    系列数组包含当前图表每个柱的最低价格。
    系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
    参见 iLow().
    示例:
    //—- 最小值
    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=min;
    i–;
    }
    //—-
    Open
    double Open[]
    系列数组包含当前图表每个柱的开盘价格。
    系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为Bars-1.
    参见 iOpen().
    示例:
    i = Bars – counted_bars – 1;
    while(i>=0)
    {
    double high = High;
    double low = Low;
    double open = Open;
    double close = Close;
    AccumulationBuffer = (close-low) – (high-close);
    if(AccumulationBuffer != 0)
    {
    double diff = high – low;
    if(0==diff)
    AccumulationBuffer = 0;
    else
    {
    AccumulationBuffer /= diff;
    AccumulationBuffer *= Volume;
    }
    }
    if(i<Bars-1) AccumulationBuffer += AccumulationBuffer[i+1];
    i–;
    }
    double Point
    返回当前图表的点值
    参见 MarketInfo().
    示例:
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
    datetime Time
    datetime Time[]
    系列数组包含当前图表的每个柱开盘时间。数据像日期时间一样呈现时间,从1979年1月1日零点开始以秒计算。
    系列数组元素被索引入倒序的定单,即从最后一个到第一个。当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
    参见 iTime().
    示例:
    for(i=Bars-2; i>=0; i–)
    {
    if(High[i+1] > LastHigh) LastHigh = High[i+1];
    if(Low[i+1] < LastLow) LastLow = Low[i+1];
    //—-
    if(TimeDay(Time) != TimeDay(Time[i+1]))
    {
    P = (LastHigh + LastLow + Close[i+1])/3;
    R1 = P*2 – LastLow;
    S1 = P*2 – LastHigh;
    R2 = P + LastHigh – LastLow;
    S2 = P – (LastHigh – LastLow);
    R3 = P*2 + LastHigh – LastLow*2;
    S3 = P*2 – (LastHigh*2 – LastLow);
    LastLow = Open;
    LastHigh = Open;
    }
    //—-
    PBuffer = P;
    S1Buffer = S1;
    R1Buffer = R1;
    S2Buffer = S2;
    R2Buffer = R2;
    S3Buffer = S3;
    R3Buffer = R3;
    } Volume
    double Volume[]
    系列数组包含当前图表每个柱替克成交量。
    系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
    参见 iVolume().
    示例:
    if(i==0 && time0<i_time+periodseconds)
    {
    d_volume += Volume[0];
    if(Low[0]<d_low) d_low = Low[0];
    if(High[0]>d_high) d_high = High[0];
    d_close = Close[0];
    }
    last_fpos = FileTell(ExtHandle);
    last_volume = Volume;
    FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
    FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
    FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
    FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
    FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
    FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);

    请登录之后再进行评论

    登录

    WordPress后台-外观-小工具 进行配置小工具

  • 发布
  • 做任务
  • 实时动态
  • 偏好设置
  • 帖子间隔 侧栏位置: