#include <Trade\Trade.mqh> #define MAGIC (123) //--- Eingabeparameter input string InpFileNameOK = "ok.wav"; // Audiodatei für Erfolg input string InpFileNameErr = "timeout.wav"; // Audiodatei für einen Fehler input ENUM_ORDER_TYPE InpOrderType = ORDER_TYPE_BUY_LIMIT; // Auftragstyp input double InpLots = 0.1; // Losgröße //--- globale Variable CTrade ExtTrade; //+------------------------------------------------------------------+ //| Skript Programm Start Funktion | //+------------------------------------------------------------------+ void OnStart() { //--- Setzen der MagicNumber und die Auftragsart bei der Ausführung entsprechend den Symboleinstellungen ExtTrade.SetExpertMagicNumber(MAGIC); ExtTrade.SetTypeFillingBySymbol(Symbol()); //--- Aufruf der Funktion zum Erteilen eines Auftrags oder zum Eröffnen einer Position mit Tonwiedergabe OrderSendWithAudio(); } //+------------------------------------------------------------------+ //| Die Funktion platziert einen Auftrag oder eröffnet eine Position | //| und spielt den Sound für Erfolg oder für einen Fehler ab | //+------------------------------------------------------------------+ void OrderSendWithAudio(void) { bool res=true; MqlTick tick= {}; ResetLastError(); if(!SymbolInfoTick(Symbol(),tick)) { Print("SymbolInfoTick() failed. Error code: ",GetLastError()); PlaySound(InpFileNameErr); return; } //--- Senden einer Anfrage an den Server 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()); //--- wenn die Anfrage akzeptiert wird, wird der Sound ok.wav abgespielt if(ExtTrade.ResultRetcode()==TRADE_RETCODE_DONE) PlaySound(InpFileNameOK); else PlaySound(InpFileNameErr); } |