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.

mmsknecht

Addict
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von mmsknecht

  1. Hallo Wolf, ich habe das Script jetzt getestet. Auf dem M1 (EUR/USD) Wegen dem repainting kommt es zum Fehlalarm. Im Moment ist es so, dass der Alarm ausgelöst wird, wenn die aktuelle Kerze den letzten Supertrend berührt. Schließt der ST dann z.B. im shortfall unter dem letzten ST-Signal, kommt es zum repaint. Wenn man sich das im M1 (Balken Chart) anschaut gibt es dafür aber eine Lösung. Es dürfte erst zu einem Alarm kommen, wenn die candel auch über dem letzten ST-Signal schließt. Quasi eine Periode später, wenn die letze Kerze über dem Supertrend geschlossen hat. Dann gibt’s auch kein repaint mehr! Das Signal wäre dann eindeutig. Wie das allerdings in mql aussehen muss?
  2. Habe ihn jetzt 30 Minuten auf M1 und 2 Std. auf M5 getestet. Allerdings passiert nichts - kein Alertsound. Ich weiß noch nicht warum?
  3. Die "alert.wav" ist ein Standartsound im Mt4-Pfad, deswegen sollte es eigentlich gehen? Freue mich auf deinen Test.
  4. Also wenn er z.B. im M5 ein neues Signal produziert, kommt der alert mit jedem Tick und das fünf Minuten lang? Ich weiß nicht, dass hört sich bei mir irgendwie anders an. Teste es mal auf kurz auf dem M1, bei mir brummen da nur die Boxen, aber kein alert.wav? #property indicator_chart_window #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_buffers 2 double TrendUp[], TrendDown[]; int changeOfTrend; extern int Nbr_Periods = 10; extern double Multiplier = 3.0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexBuffer(0, TrendUp); SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); SetIndexLabel(0, "Trend Up"); SetIndexBuffer(1, TrendDown); SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2); SetIndexLabel(1, "Trend Down"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit, i, flag, flagh, trend[5000]; double up[5000], dn[5000], medianPrice, atr; int counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit=Bars-counted_bars; //Print(limit); //---- for (i = Bars; i >= 0; i--) { TrendUp[i] = EMPTY_VALUE; TrendDown[i] = EMPTY_VALUE; atr = iATR(NULL, 0, Nbr_Periods, i); //Print("atr: "+atr[i]); medianPrice = (High[i]+Low[i])/2; //Print("medianPrice: "+medianPrice[i]); up[i]=medianPrice+(Multiplier*atr); //Print("up: "+up[i]); dn[i]=medianPrice-(Multiplier*atr); //Print("dn: "+dn[i]); trend[i]=1; if (Close[i]>up[i+1]) { trend[i]=1; if (trend[i+1] == -1) changeOfTrend = 1; //Print("trend: "+trend[i]); } else if (Close[i]<dn[i+1]) { trend[i]=-1; if (trend[i+1] == 1) changeOfTrend = 1; //Print("trend: "+trend[i]); } else if (trend[i+1]==1) { trend[i]=1; changeOfTrend = 0; } else if (trend[i+1]==-1) { trend[i]=-1; changeOfTrend = 0; } if (trend[i]<0 && trend[i+1]>0) { flag=1; //Print("flag: "+flag); } else { flag=0; //Print("flagh: "+flag); } if (trend[i]>0 && trend[i+1]<0) { flagh=1; //Print("flagh: "+flagh); } else { flagh=0; //Print("flagh: "+flagh); } if (trend[i]>0 && dn[i]<dn[i+1]) dn[i]=dn[i+1]; if (trend[i]<0 && up[i]>up[i+1]) up[i]=up[i+1]; if (flag==1) up[i]=medianPrice+(Multiplier*atr); if (flagh==1) dn[i]=medianPrice-(Multiplier*atr); //-- Draw the indicator if (trend[i]==1) { TrendUp[i]=dn[i]; if (changeOfTrend == 1) { TrendUp[i+1] = TrendDown[i+1]; PlaySound("alert.wav"); changeOfTrend = 0; } } else if (trend[i]==-1) { TrendDown[i]=up[i]; if (changeOfTrend == 1) { TrendDown[i+1] = TrendUp[i+1]; PlaySound("alert.wav"); changeOfTrend = 0; } } } WindowRedraw(); //---- return(0); } //+------------------------------------------------------------------+
  5. Danke Wolf, wenn ich den alert allerdings an diese Stelle einbau, klingelt er permanent!? //-- Draw the indicator if (trend[i]==1) { TrendUp[i]=dn[i]; if (changeOfTrend == 1) { TrendUp[i+1] = TrendDown[i+1]; PlaySound("alert.wav"); changeOfTrend = 0; } } else if (trend[i]==-1) { TrendDown[i]=up[i]; if (changeOfTrend == 1) { TrendDown[i+1] = TrendUp[i+1]; PlaySound("alert.wav"); changeOfTrend = 0; } } } WindowRedraw(); //---- return(0); } //+------------------------------------------------------------------+
  6. Hallo Zusammen, ich verwende beim traden auch den „SuperTrend“ Indikator und versuche einen Alarm einzubauen, wenn ein Signal wechselt: z.B. Grüne Linie zu Roter Linie oder Rote Line zu Grüner Linie. Leider bekomme ich es nicht hin dass beim Richtungswechsel einmal die „alert.wav“ ausgelöst wird. Könnt ihr mir weiterhelfen? Danke vorab //SuperTrend Indikator #property indicator_chart_window #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_buffers 2 double TrendUp[], TrendDown[]; int changeOfTrend; extern int Nbr_Periods = 10; extern double Multiplier = 3.0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexBuffer(0, TrendUp); SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); SetIndexLabel(0, "Trend Up"); SetIndexBuffer(1, TrendDown); SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2); SetIndexLabel(1, "Trend Down"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit, i, flag, flagh, trend[5000]; double up[5000], dn[5000], medianPrice, atr; int counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit=Bars-counted_bars; //Print(limit); //---- for (i = Bars; i >= 0; i--) { TrendUp[i] = EMPTY_VALUE; TrendDown[i] = EMPTY_VALUE; atr = iATR(NULL, 0, Nbr_Periods, i); //Print("atr: "+atr[i]); medianPrice = (High[i]+Low[i])/2; //Print("medianPrice: "+medianPrice[i]); up[i]=medianPrice+(Multiplier*atr); //Print("up: "+up[i]); dn[i]=medianPrice-(Multiplier*atr); //Print("dn: "+dn[i]); trend[i]=1; if (Close[i]>up[i+1]) { trend[i]=1; if (trend[i+1] == -1) changeOfTrend = 1; //Print("trend: "+trend[i]); } else if (Close[i]<dn[i+1]) { trend[i]=-1; if (trend[i+1] == 1) changeOfTrend = 1; //Print("trend: "+trend[i]); } else if (trend[i+1]==1) { trend[i]=1; changeOfTrend = 0; } else if (trend[i+1]==-1) { trend[i]=-1; changeOfTrend = 0; } if (trend[i]<0 && trend[i+1]>0) { flag=1; //Print("flag: "+flag); } else { flag=0; //Print("flagh: "+flag); } if (trend[i]>0 && trend[i+1]<0) { flagh=1; //Print("flagh: "+flagh); } else { flagh=0; //Print("flagh: "+flagh); } if (trend[i]>0 && dn[i]<dn[i+1]) dn[i]=dn[i+1]; if (trend[i]<0 && up[i]>up[i+1]) up[i]=up[i+1]; if (flag==1) up[i]=medianPrice+(Multiplier*atr); if (flagh==1) dn[i]=medianPrice-(Multiplier*atr); //-- Draw the indicator if (trend[i]==1) { TrendUp[i]=dn[i]; if (changeOfTrend == 1) { TrendUp[i+1] = TrendDown[i+1]; changeOfTrend = 0; } } else if (trend[i]==-1) { TrendDown[i]=up[i]; if (changeOfTrend == 1) { TrendDown[i+1] = TrendUp[i+1]; changeOfTrend = 0; } } } WindowRedraw(); //---- return(0); } //+------------------------------------------------------------------+
  7. Ob long oder short wäre nicht relevant. Würde auch mit long gehen.Der Programmierer wollte das so lösen, dass alle Stunde und 5 Minuten die neue Position geöffnet wird, wenn alle Stunde und 55 Minuten die Equity größer als die Balance ist.„CheckedToday“!? Sollte eigentlich durchgehend Handeln von 0-24!Du hast recht: „if TimeHour(TimeCurrent()) >= CloseTimeMin)“ wird nicht erreicht, das ist falsch, es müsste „if TimeMinute(TimeCurrent()) >=CloseTimeMin)“ heißen. Ich hänge den Original Code nochmal dran, da wurde rumgeschraubt, dass hab ich gar nicht gesehen! Die Idee war damals: Jede Stunde einen Trade short einzugehen (Egal wo der Kurs gerade ist) und jede Stunde zu prüfen ob die Equity größer ist als die Balance. Sollte die Equity größer sein als die Balance, alle Trades verkaufen ob im plus oder im Minus egal, da ja in der Summe im Plus. Sollte die Balance größer sein als die Equity wurde nachgekauft und die lots entsprechend der Liste (double Lots[] = {0.1, 0.2, 0.3 usw.}) erhöht. Bei einer Korrektur im Markt laufen die dadurch weit oben eingekauften Trades schneller ins Plus. War allerdings langfristig ein K.O System!!! //+------------------------------------------------------------------+ //| EURUSD-catcher.mq4 | //| Copyright © 2009, mmsknecht - www.metatrader5.de | //| http://www.metatrader5.de | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, mmsknecht - www.metatrader5.de" #property link "http://www.metatrader5.de" #define MAGIC 08042010 extern int OpenTimeMin = 5; extern int CloseTimeMin = 55; bool CheckedToday = FALSE; double Lots[] = { 0.1, 0.2, 0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.0, 10.0 }; int LotsPosition = 0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Schließt zur angegebenen Uhrzeit alle Gewinn-Trades | //+------------------------------------------------------------------+ int close_all_positive() { // Prüfe ob Uhrzeit erreicht ist if (TimeMinute(TimeCurrent()) >= CloseTimeMin) { // Prüfe ob es geöffnete Positionen gibt if (OrdersTotal() > 0) { // Prüfe ob Equity > Balance if (AccountEquity() > AccountBalance()) { // Gehe jede Position durch und schließe sie for (int j=OrdersTotal()-1;j>=0;j--) { // Order auswählen OrderSelect(j, SELECT_BY_POS, MODE_TRADES); // Je nach Order-Art (BUY / SELL) zum aktuellen Bid oder Ask-Preis schließen if (OrderType() == OP_BUY) OrderClose(OrderTicket(),OrderLots(), Bid, 0); else OrderClose(OrderTicket(),OrderLots(), Ask, 0); } LotsPosition = 0; } } } return(0); } //+------------------------------------------------------------------+ //| Prüft Bedingung für das Öffnen neuer Order | //+------------------------------------------------------------------+ int check_for_open() { // Prüfe ob neue Stunde begonnen hat if (TimeMinute(TimeCurrent()) > OpenTimeMin) { CheckedToday = FALSE; } // Prüfe auf Öffnungs-Kondition if (CheckedToday) { return(-1); } else // !CheckedToday { if (TimeMinute(TimeCurrent()) == OpenTimeMin) { if (LotsPosition < ArraySize(Lots)) { OrderSend(Symbol(), OP_SELL, Lots[LotsPosition], Bid, 0, 0.0, 0.0, "", MAGIC); Print("Tick: "+Volume[0]); LotsPosition++; CheckedToday = TRUE; } } } return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { check_for_open(); close_all_positive(); return(0); }
  8. so ich hoffe ihr habt Weihnachten auch gut rumgebracht. Das mit dem Thread werde ich machen, wird allerdings der zweite EA werden. Den ersten EA werde ich hier mal Posten, läuft mit MT4, mit dem konnte ich 2009 beim XTB-Wettbewerb den 6 Platz erzielen und 113,02% Rendite in 4 Wochen schaffen. Beim Wettbewerb standen 10.000€ Startkapital zur Verfügung und es durfte natürlich nicht manuell eingegriffen werden. Es war ein Kamikaze Script und führt langfristig zum Total Verlust!!! Also so nicht im Livetrading verwenden!!! Vielleicht dient er ja für Anregungen, oder jemand hat eine Idee zur Verbesserung! //+------------------------------------------------------------------+ //| EURUSD-catcher.mq4 | //| Copyright © 2009, mmsknecht - www.metatrader5.de | //| http://www.metatrader5.de | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, mmsknecht - www.metatrader5.de" #property link "http://www.metatrader5.de" #define MAGIC 08042010 extern int OpenTimeMin = 5; extern int CloseTimeMin = 55; bool CheckedToday = FALSE; double Lots[] = { 0.1, 0.2, 0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.0, 10.0, }; int LotsPosition = 0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Schließt zur angegebenen Uhrzeit alle Gewinn-Trades | //+------------------------------------------------------------------+ int close_all_positive() { // Prüfe ob Uhrzeit erreicht ist if (TimeHour(TimeCurrent()) >= CloseTimeMin) { // Prüfe ob es geöffnete Positionen gibt if (OrdersTotal() > 0) { // Prüfe ob Equity > Balance if (AccountEquity() > AccountBalance()) { // Gehe jede Position durch und schließe sie for (int j=OrdersTotal()-1;j>=0;j--) { // Order auswählen OrderSelect(j, SELECT_BY_POS, MODE_TRADES); // Je nach Order-Art (BUY / SELL) zum aktuellen Bid oder Ask-Preis schließen if (OrderType() == OP_BUY) OrderClose(OrderTicket(),OrderLots(), Bid, 0); else OrderClose(OrderTicket(),OrderLots(), Ask, 0); } LotsPosition = 0; } } } return(0); } //+------------------------------------------------------------------+ //| Prüft Bedingung für das Öffnen neuer Order | //+------------------------------------------------------------------+ int check_for_open() { // Prüfe ob neue Stunde begonnen hat if (TimeHour(TimeCurrent()) > OpenTimeMin) { CheckedToday = FALSE; } // Prüfe auf Öffnungs-Kondition if (CheckedToday) { return(-1); } else // !CheckedToday { if (TimeHour(TimeCurrent()) == OpenTimeMin) { if (LotsPosition < ArraySize(Lots)) { OrderSend(Symbol(), OP_SELL, Lots[LotsPosition], Bid, 0, 0.0, 0.0, "", MAGIC); Print("Tick: "+Volume[0]); LotsPosition++; CheckedToday = TRUE; } } } return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { check_for_open(); close_all_positive(); return(0); }
  9. ! :-) Also, dann lasst uns doch einen EA programmieren ;-)
  10. hat geklappt Vola, //| Modified to give audible alarm on reversal | //| Modified by Jim Arner, Sr. | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red #property indicator_width1 5 //---- input parameters extern double Step=0.02; extern double Maximum=0.2; //---- buffers double SarBuffer[]; //---- int save_lastreverse; bool save_dirlong, save_dirshort; double save_start; double save_last_high;ich versuche gerade einen Order Befehl zu integrieren, kann allerdings auch kein mql! Wenn er von shot auf long wechselt oder von long auf short, entsprechend einen trade einzugehen. An welche Stelle muss der Befehl? Er muss ja den vorgänger Trade auch schließen. OrderSend(Symbol(), OP_SELL, Lots[LotsPosition], Bid, 0, 0.0, 0.0, "", MAGIC);
  11. also hast du die Einstellungen nicht vorgenommen? farbe kann ich bei "#property indicator_color1" einstellen, aber wo finde ich die größe mit der das Signal im Chart abgebildet wird? #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Lime //---- input parameters extern double Step=0.02; extern double Maximum=0.2; //---- buffers double SarBuffer[]; //---- int save_lastreverse; bool save_dirlong; double save_start; double save_last_high; double save_last_low; double save_ep; double save_sar; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexBuffer(0,SarBuffer); //---- return(0);danke dir
  12. sieht gut aus WOGO danke dafür, bei den extern double Step ist der Wert auf "Step=0.05;" und der extern double Maximum auf "Maximum=0.3;" den Parabolic den MT mitliefert, gibt er "Step=0.02;" und "Maximum=0.2;" vor. Hat das einen Grund? Kann man das optische Signal auf dem Chart größer darstellen, so wie im Original MT Parabolic?
  13. Danke erstmal für die Hilfe, damit man den Kurs nicht die ganze Zeit beobachten muss, soll es ein Alert geben wenn der Indikator von short auf long bzw. von long auf short wechselt. Ich dachte da an sowas wie: if (kurswechsel) != true) Alert („Kurse Change“);
  14. Hallo Zusammen, der Indicator "Parabolic" zeigt in jeder Zeiteinheit auf dem Chart über und unter dem Kurs Signale. Ich kann leider kein mql! würde den Indicator allerdings gerne um eine Funktion erweitert haben. Ist es möglich dass wenn der Indicator sein Signal wechselt, also z.B. von long auf short oder von short auf long, das dann ein akustisches Signal kommt z.B. für 1 Minute, egal in welcher Zeiteinheit? //+------------------------------------------------------------------+ //| Parabolic.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Lime //---- input parameters extern double Step=0.02; extern double Maximum=0.2; //---- buffers double SarBuffer[]; //---- int save_lastreverse; bool save_dirlong; double save_start; double save_last_high; double save_last_low; double save_ep; double save_sar; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexBuffer(0,SarBuffer); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void SaveLastReverse(int last,int dir,double start,double low,double high,double ep,double sar) { save_lastreverse=last; save_dirlong=dir; save_start=start; save_last_low=low; save_last_high=high; save_ep=ep; save_sar=sar; } //+------------------------------------------------------------------+ //| Parabolic Sell And Reverse system | //+------------------------------------------------------------------+ int start() { static bool first=true; bool dirlong; double start,last_high,last_low; double ep,sar,price_low,price_high,price; int i,counted_bars=IndicatorCounted(); //---- if(Bars<3) return(0); //---- initial settings i=Bars-2; if(counted_bars==0 || first) { first=false; dirlong=true; start=Step; last_high=-10000000.0; last_low=10000000.0; while(i>0) { save_lastreverse=i; price_low=Low[i]; if(last_low>price_low) last_low=price_low; price_high=High[i]; if(last_high<price_high) last_high=price_high; if(price_high>High[i+1] && price_low>Low[i+1]) break; if(price_high<High[i+1] && price_low<Low[i+1]) { dirlong=false; break; } i--; } //---- initial zero int k=i; while(k<Bars) { SarBuffer[k]=0.0; k++; } //---- check further if(dirlong) { SarBuffer[i]=Low[i+1]; ep=High[i]; } else { SarBuffer[i]=High[i+1]; ep=Low[i]; } i--; } else { i=save_lastreverse; start=save_start; dirlong=save_dirlong; last_high=save_last_high; last_low=save_last_low; ep=save_ep; sar=save_sar; } //---- while(i>=0) { price_low=Low[i]; price_high=High[i]; //--- check for reverse if(dirlong && price_low<SarBuffer[i+1]) { SaveLastReverse(i,true,start,price_low,last_high,ep,sar); start=Step; dirlong=false; ep=price_low; last_low=price_low; SarBuffer[i]=last_high; i--; continue; } if(!dirlong && price_high>SarBuffer[i+1]) { SaveLastReverse(i,false,start,last_low,price_high,ep,sar); start=Step; dirlong=true; ep=price_high; last_high=price_high; SarBuffer[i]=last_low; i--; continue; } //--- price=SarBuffer[i+1]; sar=price+start*(ep-price); if(dirlong) { if(ep<price_high && (start+Step)<=Maximum) start+=Step; if(price_high<High[i+1] && i==Bars-2) sar=SarBuffer[i+1]; price=Low[i+1]; if(sar>price) sar=price; price=Low[i+2]; if(sar>price) sar=price; if(sar>price_low) { SaveLastReverse(i,true,start,price_low,last_high,ep,sar); start=Step; dirlong=false; ep=price_low; last_low=price_low; SarBuffer[i]=last_high; i--; continue; } if(ep<price_high) { last_high=price_high; ep=price_high; } } else { if(ep>price_low && (start+Step)<=Maximum) start+=Step; if(price_low<Low[i+1] && i==Bars-2) sar=SarBuffer[i+1]; price=High[i+1]; if(sar<price) sar=price; price=High[i+2]; if(sar<price) sar=price; if(sar<price_high) { SaveLastReverse(i,false,start,last_low,price_high,ep,sar); start=Step; dirlong=true; ep=price_high; last_high=price_high; SarBuffer[i]=last_low; i--; continue; } if(ep>price_low) { last_low=price_low; ep=price_low; } } SarBuffer[i]=sar; i--; } // sar=SarBuffer[0]; // price=iSAR(NULL,0,Step,Maximum,0); // if(sar!=price) Print("custom=",sar," SAR=",price," counted=",counted_bars); // if(sar==price) Print("custom=",sar," SAR=",price," counted=",counted_bars); //---- return(0); } //+------------------------------------------------------------------+ Vielen Dank vorab für die Hilfe
  15. für ersteres habe ich leider keine Zeit! Ich wusste nicht das, dass kein fertiges Script war! wohin müssen die Parameter übergeben werden? Hier nochmal der ganze Code. Script eins "Intervall-Order" kauft shorties. Script zwei "SumControl" soll einmal am Tag checken ob die Trades in der Summe im Plus sind und wenn ja, alle verkaufen. static int prevtime = 0; int init() { return(0); } int deinit() { return(0); } int start() { // Intervall-Order if(Time[0] == prevtime) //aktueller Bar schon erledigt, nichts tun return(0); double myBid= NormalizeDouble(Bid,Digits); OrderSend(Symbol(), OP_SELL, 0.1, myBid, 3, myBid+50*Point , myBid-50*Point); // kauft 0.1 lot short je Periode prevtime = Time[0]; return(0); } // SumControl datetime wantedTime = TimeCurrent() - Hour()*60*60 - Minute()*60 - Seconds + WantedHour*60*60+WantedMinute*60; while(TimeCurrent() < wantedTime) { Sleep(1000); //warte ne sekunde } //... hier der Rest, wird erst ausgeführt wenn Time > wanted Time
  16. Hi, nein, ich befasse mich erst seit wenigen Tagen mit MQL. Danke für das Script, habe es eingefügt und bekomme beim kompilieren die Meldung „WantedHour“ – variable not defined und „WantedMinute“ – variable not defined?
  17. wenn ich einen backtest hinbekomme, der 20 Jahre übersteht!:) Ich dachte, wenn ich das Script jetzt long anwenden will, muss ich nur aus „OP_SELL“ - „OP_BUY“ machen?
  18. Hallo Zusammen, ich will ein Script schreiben, welches die offenen Orders eines Währungspaares, alle 24 Stunden in der Summe kontrolliert. Angenommen wir bewegen uns auf dem EURUSD. Ein anderes Script öffnet von Zeit zu Zeit trades. Sind die Trades nach 24 Stunden in der Summe im Plus, soll das Script alle offenen Positionen schließen. Sind die Trades in der Summe im Minus, soll das Script nichts machen. Für Lösungsvorschläge wäre ich dankbar.
  19. Danke an alle, es klappt jetzt:)
  20. jawohl, dass hat geklappt. Er stetzt zwar immernoch keine Trades, bringt aber jetzt andere Fehlermeldungen: - OrderSend error 131 - OrderSend error 4107 - invalid price 1,36765000 for OrderSend function und das ca. 50mal Ich füge den kompletten Code nochmal bei!:) static int prevtime = 0; int init() { return(0); } int deinit() { return(0); } int start() { if(Time[0] == prevtime) //aktueller Bar schon erledigt, nichts tun return(0); OrderSend(Symbol(), OP_SELL, 0.01, Bid, 3, Bid+50*Point , Bid-50*Point); prevtime = Time[0]; return(0); }
  21. hab ich gemacht, im Journal steht: - There were 1 passes done during optimization, 1 results have been discarded as insignificant - optimization stopped
  22. ja, habe schon öfters backtests gemacht. Lasse es auf dem EURUSD laufen, die Daten sind alle gedownloaded. Was mir an dem pdf aufgefallen ist, verschiedene Menüs wie "imput" im Experten Eigenschaften und "Bericht" im backtestprogramm fehlen bei mir, naja ob das jetzt relevant ist!? Habs nochmal durchlaufen lassen, er macht den test, dauert ca. 16 Sekunden, im Ergebnis hat er keinen Trade gesetzt?
  23. Hallo Zusammen und vielen Dank für eure Hilfe. Der Code sieht im Moment folgendermaßen aus: static int prevtime = 0; int init() { return(0); } int deinit() { return(0); } int start() { if(Time[0] == prevtime) //aktueller Bar schon erledigt, nichts tun return(0); OrderSend(Symbol(), OP_SELL, 1, Bid, 3, Bid+50*Point , Bid-50*Point); prevtime = Time[0]; return(0); } Wenn ich das jetzt im backtest (XTB-Trader(Periode "Daily", Modell "Jedes Ticksignal")) laufen lasse, erhalte ich kein Ergebnis? Sollte er jetzt nicht jede Stunde einen Trade platzieren?
  24. aja danke. Ich habe mich mal dran versucht: if(Time[0] == prevtime) //aktueller Bar schon erledigt, nichts tun return(0); OrderSend(string symbol, OP_SELL cmd, 1 volume, Ask price, int slippage, 50 stoploss, 50 takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=Red) prevtime = Time[0]; return(0); Bekomme beim Kompilieren jede Menge fehlermedlungen wie variable not defined, variable expected

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.