您現在的位置:程序化交易>> 外匯現貨>> MT4>> MT4知識>>正文內容

MT4實用函數 [MT4]

  • 寫程序應該多多使用函數,這樣能夠提高編程的效率,下面是曾經用到的函數,將他們保存下來,供以后直接復制過去使用,這就不必每次都要重寫了。

    //---顯示信息函數,因為創建了兩個對象,所以在退出時,應該刪除對象-----------------
    void showinfo(){
    ObjectCreate("p1",OBJ_LABEL,0,0,0);
    ObjectSetText("p1",Symbol()+" 帳戶余額:"+DoubleToStr(AccountBalance(),0)+" 帳戶凈值:"+DoubleToStr(AccountEquity(),0),18,"華文細黑",Yellow);
    ObjectSet("p1",OBJPROP_XDISTANCE,10);
    ObjectSet("p1",OBJPROP_YDISTANCE,40);

    ObjectCreate("p2",OBJ_LABEL,0,0,0);
    ObjectSetText("p2","EA-yunkaicn 自動交易系統已經啟動。時間:"+Month()+"月"+Day()+"日"+Hour()+"點"+Minute()+"分",18,"華文細黑",Yellow);
    ObjectSet("p2",OBJPROP_XDISTANCE,10);
    ObjectSet("p2",OBJPROP_YDISTANCE,10);
    }

    //---計算當前貨幣訂單數函數。
    int CalculateCurrentOrders(string symbol)
    {
    int buys=0,sells=0;
    for(int i=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
    {
    if(OrderType()==OP_BUY) buys++;
    if(OrderType()==OP_SELL) sells++;
    }
    }
    if(buys>0) return(buys);
    else return(-sells);
    }

    //---計算交易手數的函數。
    double LotsOptimized()
    {
    if(AccountEquity()<300) return(0.1);
    if(AccountEquity()>=300 && AccountEquity()<500) return(0.2);
    if(AccountEquity()>=500 && AccountEquity()<1000) return(0.4);
    if(AccountEquity()>=1000 && AccountEquity()<5000) return(0.6);
    if(AccountEquity()>=5000 && AccountEquity()<10000) return(1);
    if(AccountEquity()>=10000) return(5);
    }

    //---開倉函數。
    void CheckForOpen()
    {
    Lots=0.1;
    if(zo<minfan && ccip1<-ccipt && ccip2>=-ccipt)
    {

    res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid + StopLoss*Point,Bid - TakeProfit*Point,"",MAGICMA,0,Red);
    if(res>0)
    {
    if(OrderSelect(res,SELECT_BY_TICKET,MODE_TRADES))
    Alert(Symbol(),"賣單已經開了,價格是:",OrderOpenPrice());
    }
    else Alert(Symbol(),"賣單開倉出錯:",ErrorDescription(GetLastError()));
    return;
    return;
    }
    if(zo>maxfan && ccip1>ccipt && ccip2<=ccipt)
    {
    res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask - StopLoss*Point, Ask + TakeProfit*Point,"",MAGICMA, 0, Red);
    if(res>0)
    {
    if(OrderSelect(res,SELECT_BY_TICKET,MODE_TRADES))
    Alert(Symbol(),"買單已經開了,價格是:",OrderOpenPrice());
    }
    else Alert(Symbol(),"買單開倉出錯:",ErrorDescription(GetLastError()));
    return;
    }
    }

    //---平倉函數。
    void CheckForClose()
    {
    Print("當前訂單的利潤:",OrderProfit(),"當前交易量(手):",LotsOptimized());
    for(int i=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
    if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
    if(OrderType()==OP_BUY)
    {
    if(Open[3]>=Close[3] && Open[2]>=Close[2] && Open[1]>=Close[1] )
    OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
    }
    if(OrderType()==OP_SELL)
    {
    if(Open[3]<=Close[3] && Open[2]<=Close[2] && Open[1]<=Close[1] )
    OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
    }
    }
    }


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 男人把大ji巴放进男人免费视频| 一级做a爰片久久毛片人呢| 老司机67194免费观看| 天天综合网色中文字幕| 亚洲人成网站免费播放| 色噜噜狠狠成人网| 在线日本中文字幕| 久久香蕉国产视频| 精品性高朝久久久久久久| 国产精品视频免费一区二区| 久久国产欧美日韩精品| 色综合合久久天天给综看| 天天干天天操天天玩| 亚洲va韩国va欧美va| 美女被免费网站视频九色| 国产色婷婷精品综合在线| 久久人人妻人人做人人爽| 瓮红电影三级在线播放| 国产欧美日韩一区二区三区| 中国xxxxx高清免费看视频| 欧美最猛黑人xxxx黑人猛交| 国产人成视频在线视频| jazzjazz国产精品| 日韩精品高清在线| 免费看美女部位隐私直播| 800av在线播放| 成人午夜精品视频在线观看| 亚洲成在人线在线播放无码| 色狠狠一区二区| 国产香蕉在线视频一级毛片| 久久久精品波多野结衣| 800av我要打飞机| 日本永久免费a∨在线视频| 亚洲黄色在线观看网站| 黄色91香蕉视频| 婷婷啪啪婷婷啪啪| 亚洲aⅴ在线无码播放毛片一线天 亚洲aⅴ在线无码播放毛片一线天 | 午夜欧美日韩在线视频播放| 一级特黄录像视频免费| 欧美性猛交xxxx乱大交| 国产dvd毛片在线视频|