#include <Trade\Trade.mqh> #define MAGIC (123) //--- girdi parametreleri input string InpFileNameOK = "ok.wav"; // başarıl ses dosyası input string InpFileNameErr = "timeout.wav"; // hata ses dosyası input ENUM_ORDER_TYPE InpOrderType = ORDER_TYPE_BUY_LIMIT; // emir türü input double InpLots = 0.1; // lot //--- global değişkenler CTrade ExtTrade; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- sihirli sayıyı ve sembol ayarlarına göre emir yerine getirme türünü ayarla ExtTrade.SetExpertMagicNumber(MAGIC); ExtTrade.SetTypeFillingBySymbol(Symbol()); //--- ses oynatma eşliğinde bir emir yerleştirme veya bir pozisyon açma fonksiyonunu çağır OrderSendWithAudio(); } //+------------------------------------------------------------------+ //| Fonksiyon bir emir yerleştirir veya bir pozisyon açar | //| ve başarı veya hata sesini çalar | //+------------------------------------------------------------------+ void OrderSendWithAudio(void) { bool res=true; MqlTick tick= {}; ResetLastError(); if(!SymbolInfoTick(Symbol(),tick)) { Print("SymbolInfoTick() failed. Error code: ",GetLastError()); PlaySound(InpFileNameErr); return; } //--- sunucuya bir talep gönderir switch(InpOrderType) { case ORDER_TYPE_BUY : res=ExtTrade.Buy(InpLots); break; case ORDER_TYPE_BUY_LIMIT : res=ExtTrade.BuyLimit(InpLots,NormalizeDouble(tick.ask-100*Point(),Digits())); break; case ORDER_TYPE_BUY_STOP : res=ExtTrade.BuyStop(InpLots,NormalizeDouble(tick.ask+100*Point(),Digits())); break; case ORDER_TYPE_SELL : res=ExtTrade.Sell(InpLots); break; case ORDER_TYPE_SELL_LIMIT : res=ExtTrade.SellLimit(InpLots,NormalizeDouble(tick.bid+100*Point(),Digits())); break; case ORDER_TYPE_SELL_STOP : res=ExtTrade.SellStop(InpLots,NormalizeDouble(tick.bid-100*Point(),Digits())); break; default : res=false; } if(!res) Print("Error ",GetLastError()); Print(ExtTrade.ResultRetcodeDescription()); //--- talep kabul edilirse, ok.wav sesini çal if(ExtTrade.ResultRetcode()==TRADE_RETCODE_DONE) PlaySound(InpFileNameOK); else PlaySound(InpFileNameErr); } |