Vielen Dank
traderdoc
Code sieht so aus, falls jemand es braucht (oder es vielleicht noch was zu verbessern gibt):
Code:
// === head
#resource "\\Files\\Sounds\\HitSl.wav" // SL Treffer
#resource "\\Files\\Sounds\\HitTp.wav" // TP Treffer
datetime LastCloseTime=TimeCurrent(); // reicht hier
void OnTimer()
{
GetExitHits(); // reicht hier, je nach Timereinstellung
}
void GetExitHits()
{
string sl_subst="[sl]"; // Zeichen im Kommentar für SL
string tp_subst="[tp]"; // Zeichen im Kommentar für TP
int res=EMPTY; // Resultatnummer, -1 ist nicht gefunden
// === 0 ist die 1. Position (früheste), wird hochgezählt bis zur letzten
// === wir zählen runter von der letzten zur frühesten
// und stoppen nach dem ersten Fund mit break
for(int i=OrdersHistoryTotal(); i>=0; i--)
{
if( OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) )
{
if( OrderSymbol()==_Symbol // unser Markt
&& OrderType()<=1 ) // Market Orders
{
// === SL Sound
res=StringFind(OrderComment(),sl_subst,0);
if( res!=-1 // [sl] im Kommentar
&& OrderCloseTime()>LastCloseTime ) // nach dem letzten Fund
{
FuncPlaySound("::Files\\Sounds\\HitSl.wav"); // Sound spielen
LastCloseTime=OrderCloseTime(); // als letzten Fund merken
break; // stop, keine älteren mehr
}
// === TP Sound
res=StringFind(OrderComment(),tp_subst,0);
if( res!=-1 // [tp] im Kommentar
&& OrderCloseTime()>LastCloseTime ) // nach dem letzten Fund
{
FuncPlaySound("::Files\\Sounds\\HitTp.wav"); // Sound spielen
LastCloseTime=OrderCloseTime(); // als letzten Fund merken
break; // stop, keine älteren mehr
}
} // Symbol, MarketOrders
} // select MODE_HISTORY
} // HistoryTotal
}
Die FuncPlaySound(string FileName)
prüft ob SoundOn und wenn ja dann PlaySound(FileName).
AVT