Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

schrat

Rookie
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von schrat

  1. Hallo, siscop, du hast den Finger genau in die richtige Wunde gelegt. Mein Programm hat zwar noch mehr Macken, vielleicht habe ich auch nicht die richtige Strategie, aber der Backtest läuft erst mal. Plups und danke. Vielleicht kannst du auch mit dieser Meldung etwas anfangen, die zum Start des Backtest als ganzes Paket kommt. 2010.09.02 19:07:20 TestGenerator: unmatched data error (volume limit 61 at 2010.08.05 17:25 exceeded) Und, obwohl der Zeitraum bis heute eingestellt ist, wird mit folgender Meldung eher abgebrochen: 2010.09.02 19:19:29 2010.07.12 00:01 Test27 EURUSD,M5: OrderSend error 4107 2010.09.02 19:19:29 2010.07.12 00:01 Test27 EURUSD,M5: invalid price 1.26443000 for OrderSend function 2010.09.02 19:19:29 2010.07.09 20:11 Test27 EURUSD,M5: close #180 sell 0.10 EURUSD at 1.2642 sl: 1.2674 tp: 1.2592 at price 1.2644 2010.09.02 19:19:29 2010.07.09 20:11 Test27 EURUSD,M5: open #180 sell 0.10 EURUSD at 1.2642 sl: 1.2674 tp: 1.2592 ok Ich weiß, man soll auch selbst was rausfinden. Aber in der Schule konnte ich auch den Lehrer fragen.
  2. Hier ein kurzer Auszug des Journals: 2010.09.02 16:39:41 2010.06.23 04:10 Test27 EURUSD,M5: OrderSend error 130 2010.09.02 16:39:41 2010.06.23 01:20 Test27 EURUSD,M5: close #1 sell 0.10 EURUSD at 1.2273 sl: 1.2305 tp: 1.2223 at price 1.2281 2010.09.02 16:39:41 2010.06.23 01:16 Test27 EURUSD,M5: open #1 sell 0.10 EURUSD at 1.2273 sl: 1.2305 tp: 1.2223 ok 2010.09.02 16:39:41 Test27 inputs: Start_Trailing_Stop=-15; 2010.09.02 16:39:41 TestGenerator: unmatched data error (low value 1.2660 at 2010.08.31 20:55 is not reached from the least timeframe, low price 1.2661 mismatches) 2010.09.02 16:39:41 TestGenerator: unmatched data error (high value 1.2725 at 2010.08.30 11:10 is not reached from the least timeframe, high price 1.2724 mismatches) 2010.09.02 16:39:41 TestGenerator: unmatched data error (high value 1.2767 at 2010.08.27 17:25 is not reached from the least timeframe, high price 1.2766 mismatches) 2010.09.02 16:39:41 TestGenerator: unmatched data error (high value 1.2764 at 2010.08.27 17:20 is not reached from the least timeframe, high price 1.2763 mismatches) 2010.09.02 16:39:41 TestGenerator: unmatched data error (low value 1.2670 at 2010.08.24 18:45 is not reached from the least timeframe, low price 1.2671 mismatches) 2010.09.02 16:39:41 TestGenerator: unmatched data error (low value 1.2670 at 2010.08.24 18:30 is not reached from the least timeframe, low price 1.2671 mismatches) 2010.09.02 16:39:41 TestGenerator: unmatched data error (volume limit 10 at 2010.08.20 21:55 exceeded) Es tradet nicht. Unsympatisch sind mir auch die Datenfehler, die sich noch eine ganze Stange fortsetzen. Im Demo habe ich mir durch Printanweisung die generierten Signale anzeigen lassen. Diese hätten dann zum Öffnen oder schließen einer Position geführt. Mit OrderSend() und OrderClose() scheitere ich im Backtest aber kläglich.
  3. Hallo in die Runde Seit kurzem versuche ich mich in der MQL-Programmierung. Habe auch entsprechende Foren durchforstet und mitgelesen. Nun habe ich aber ein Problem und ehe ich verzweifle stelle ich das mal in die Runde. Der EA, den ich mir gebastelt habe, habe ich als Demo laufen lassen. Im Journal erkenne ich, daß er entsprechende Signale liefert. Bei einem Bachtest scheitere ich aber immer wieder wieder kläglich. Was ist hier grundsätzlich falsch? #define MagicNumber 1001 double Profit = 50; double Stopp = 30; int TimeClose = 0; double lot = 0.1; double Slippage = 2; datetime prevtime = 0; int Fall; int Fall1_vHP, Fall3_vHP; int i_CCI_long, i_CCI_short, CCI_long, CCI_short; double CCI50_0, Diff_CCI5, Osma1_Diff0, Osma5_Diff0, Osma5_Diff1, MACD5_Diff0, MACD5_Diff1, Osma5; double MACD1_Diff0; int i_entry_long, i_entry_short, entry_long, entry_short; double Kauf; int Pip; int Stop0; int Stop = -10; int Stop_1; int Stop_exit; int i_Stop_long, i_Stop_short; extern int Start_Trailing_Stop = -15; int order_long = 0; int order_short = 0; int exit = 0; int exit_long = 0; int exit_short = 0; int buys, sells; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //Ermittlung der Ausgangssituation (Fall) / CCI50_0 = iCCI(NULL,5,14,PRICE_TYPICAL,0); Diff_CCI5 = iCCI(NULL,5,14,PRICE_TYPICAL,0) - iCCI(NULL,5,14,PRICE_TYPICAL,1); Osma5_Diff0 = 10000*(iOsMA(NULL,5,12,26,9,PRICE_TYPICAL,0)-iOsMA(NULL,5,12,26,9,PRICE_TYPICAL,1)); if(CCI50_0 < -130) Fall = 1; if(CCI50_0 > -130 && CCI50_0 < 130) Fall = 2; if(CCI50_0 > 130) Fall = 3; //if (Fall == 1 && (Diff_CCI5 > 0 || Osma5_Diff0 > 0)) Fall1_vHP = 1; //if (Fall == 3 && (Diff_CCI5 < 0 || Osma5_Diff0 < 0)) Fall3_vHP = 1; // Alert("Fall: ", Fall, ", CCI: ", CCI50_0, ", ", Fall1_vHP, ", ", Fall3_vHP); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } int CalcCurOrd() { 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()==MagicNumber) { if(OrderType()==OP_BUY) buys++; if(OrderType()==OP_SELL) sells++; } } //---- if(buys>0) return(buys); else return(-sells); } double PointX() { if (Digits==5 || Digits ==3) return(Point*10); else return(Point); } void Count_for_CCI5() { CCI50_0 = iCCI(NULL,5,14,PRICE_TYPICAL,0); Diff_CCI5 = iCCI(NULL,5,14,PRICE_TYPICAL,0) - iCCI(NULL,5,14,PRICE_TYPICAL,1); if(CCI50_0 > -130 && CCI50_0 < 130) Fall = 2; if(CCI50_0 > 130 && Fall == 2) { Fall = 3; Alert("CCI5-aktuell, Fall: ", Fall, ", CCI5: ", CCI50_0); } if(CCI50_0 < -130 && Fall == 2) { Fall = 1; Alert("CCI5-aktuell, Fall: ", Fall, ", CCI5: ", CCI50_0); } if (Fall == 1 && Fall1_vHP == 0) { if (Diff_CCI5 > 0 && i_CCI_long == 0) { CCI_long = 1; { if (i_CCI_long == 0) Alert("CCI_long: ", CCI_long); // Alert(OrdersTotal(), " ", buys, " ", sells, " ", OrderMagicNumber()); i_CCI_long = 1; } } } if (Fall == 3 && Fall3_vHP == 0) { if (Diff_CCI5 < 0 && i_CCI_short == 0) { CCI_short = 1; { if (i_CCI_short == 0) Alert("CCI_short: ", CCI_short); // Alert(OrdersTotal(), " ", buys, " ", sells, " ", OrderMagicNumber()); i_CCI_short = 1; } } } return; } void CheckForEntry() { Count_for_CCI5(); Osma1_Diff0 = 10000*(iOsMA(NULL,1,12,26,9,PRICE_TYPICAL,0)-iOsMA(NULL,1,12,26,9,PRICE_TYPICAL,1)); Osma5_Diff0 = 10000*(iOsMA(NULL,5,12,26,9,PRICE_TYPICAL,0)-iOsMA(NULL,5,12,26,9,PRICE_TYPICAL,1)); MACD1_Diff0 = 1000*(iMACD(NULL,1,12,26,9,PRICE_TYPICAL,MODE_MAIN,0) - iMACD(NULL,1,12,26,9,PRICE_TYPICAL,MODE_MAIN,1)); Osma5 = iOsMA(NULL,1,12,26,9,PRICE_TYPICAL,0); if (CCI_long == 1 && Osma1_Diff0 > 0 && MACD1_Diff0 > 0 && Osma5_Diff0 > 0 && i_entry_long == 0) { entry_long = 1; // Alert("CCI_long: ", CCI_long, entry_long, " Ask: ", Ask); i_CCI_long = 0; CCI_long = 0; } if (CCI_short == 1 && Osma1_Diff0 < 0 && MACD1_Diff0 < 0 && Osma5_Diff0 < 0 && i_entry_short == 0) { entry_short = -1; // Alert("CCI_short: ", CCI_short, entry_short, " Bid: ", Bid); i_CCI_short = 0; CCI_short = 0; } return; } void CheckForOpen() { int res; if(prevtime == Time[0]) return; CheckForEntry(); if (order_long == 0 && order_short == 0 && entry_long == 1) { res=OrderSend(Symbol(),OP_BUY,lot,Ask,Slippage, Bid-PointX()*Stopp,Ask+PointX()*Profit,"long",MagicNumber,0,Green); Kauf = Ask; order_long = 1; Stop_1 = 0; i_Stop_long = 0; i_entry_long = 1; // Alert ("res-long: ", res, " Ask: ", Ask, " Kauf: ", Kauf); prevtime = Time[0]; return; } if (order_short == 0 && order_long == 0 && entry_short == -1) { res=OrderSend(Symbol(),OP_SELL,lot,Bid,Slippage, Ask+PointX()*Stopp,Bid-PointX()*Profit,"short",MagicNumber,0,Red); Kauf = Bid; order_short = 1; Stop_1 = 0; i_Stop_short = 0; i_entry_short = 1; // Alert ("res-short: ", res, " Bid: ", Bid, " Kauf: ", Kauf); prevtime = Time[0]; return; } } void CheckForExit() { Osma5_Diff0 = 10000*(iOsMA(NULL,5,12,26,9,PRICE_CLOSE,0)-iOsMA(NULL,5,12,26,9,PRICE_CLOSE,1)); Osma1_Diff0 = 10000*(iOsMA(NULL,1,12,26,9,PRICE_CLOSE,0)-iOsMA(NULL,1,12,26,9,PRICE_CLOSE,1)); MACD5_Diff0 = 10000*(iMACD(NULL,0,12,26,9,PRICE_TYPICAL,MODE_MAIN,0) - iMACD(NULL,0,12,26,9,PRICE_TYPICAL,MODE_MAIN,1)); MACD5_Diff1 = 10000*(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1) - iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,2)); if (order_long == 1) { Profit = Bid - Kauf; Pip = Profit / PointX(); if(Osma1_Diff0 > 0 || Osma5_Diff0 > 0 || MACD5_Diff0 > 0) { Stop0 = Pip; Alert("Stop0: ", Stop0, " Stop_1: ", Stop_1); if(Stop0 > Stop_1) {Stop_1 = Stop0; Alert ("Stopp_long: ", Stop_1); if(Stop_1 > 3) Stop = 3; } } Stop_exit = Stop_1 - 6; if(entry_short == -1 || Pip < Stop_exit || Pip <= Stop) {exit_long = 1; Alert ("entry_short: ", entry_short, " Pip: ", Pip, " Stop_exit: ", Stop_exit, " Stop: ", Stop); } } if (order_short == 1) { Profit = Kauf - Ask; Pip = Profit / PointX(); if(Osma1_Diff0 < 0 || Osma5_Diff0 < 0 || MACD5_Diff0 < 0) { Stop0 = Pip; Alert("Stop0: ", Stop0, " Stop_1: ", Stop_1); if(Stop0 > Stop_1) {Stop_1 = Stop0; Alert ("Stopp_short: ", Stop_1); if(Stop_1 > 3) Stop = 3; } } Stop_exit = Stop_1 - 6; if(entry_long == 1 || Pip < Stop_exit || Pip <= Stop) {exit_short = 1; Alert ("entry_long: ", entry_long, " Pip: ", Pip, " Stop_exit: ", Stop_exit, " Stop: ", Stop); } } } void CheckForClose() { if (order_long == 1 || order_short == 1) CheckForExit(); for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue; if (OrderType()==OP_BUY && order_long == 1 && exit_long == 1) //&& OrderType()==OP_BUY { Alert("Verkauf long: ",exit_long, ", Bid: ", Bid); order_long = 0; exit_long = 0; i_Stop_long = 0; entry_long = 0; i_entry_long = 0; OrderClose(OrderTicket(),lot,Bid,Slippage,Red); return(0); } if (OrderType()==OP_SELL && order_short == 1 && exit_short == 1) //&& OrderType()==OP_SELL { Alert("Verkauf short: ",exit_short, ", Ask: ", Ask); order_short = 0; exit_short = 0; i_Stop_short = 0; entry_short = 0; i_entry_short = 0; OrderClose(OrderTicket(),lot,Bid,Slippage,Green); return(0); } } } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(CalcCurOrd()==0) CheckForOpen(); if(CalcCurOrd()!=0) CheckForClose(); //---- return(0); } //+------------------------------------------------------------------+ Habe den Quelltext auch als Datei angehängt. Wäre sehr schön, wenn da ein "Versierter" mich aufklären könnte.Test26.mq4
  4. Hallo, Ich bin ziemlicher MQL-Anfänger und habe mir da erst mal was programmiert, das Einstiegssignale generiert. Das kann ich mir dann drucken oder am Bildschirm anzeigen lassen, aber es gibt doch auch die Funktion: void PlaySound( string filename) Function plays a sound file. The file must be located in the terminal_dir\sounds directory or in its subdirectory. Kann mir jemand sagen, was für eine Datei ich in welches Verzeichnis laden muß? Einen Ordner terminal_dir habe ich nicht gefunden. Vielen Dank für einen Hinweis.

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.