Search the Community
Showing results for tags 'mql'.
-
Da deutsches Material zur Programmierung in MQL nach wie vor rar gesät ist, ist es erfreulich das in diesen Bereich mal (wieder) etwas Bewegung kommt. Daxsignal.de bietet insgesamt 52 Videotutorials mit ca. 40 Std. Film an. Einige Videos sind kostenlos, der Dienst zielt aber wohl darauf ab, Abonnenten zu gewinnen, die 249 € für das Komplettpaket bezahlen müssen. Wie dem auch sei, für Anfänger in MQL vllt. mal einen Klick wert, entscheiden kann man dann ja immer noch. Tutorial für MQL Teilweise kostenlos Neuerscheinungen ab 10.04.2014 btw. Der Thread ist nicht als Werbung für den Anbieter zu verstehen, nur als Info, was es wo gibt. Ein Bild von Qualität, Kosten / Nutzen muß sich jeder selbst machen Wenn ich programmieren könnte würde es so etwas schon seit Jahren geben
- 13 replies
-
- 3
-
-
Hallo Leute, wie kann ich am besten den aktuellen Drawdown im Depot ermitteln? Rein theoretisch müsste man doch so vorgehen: - Startkapital auslesen (geht das so einfach oder muss ich dazu die komplette Historie summieren?) - dann die Historie vom ersten bis zum letzten Trade auslesen und damit das High-Watermark ermitteln - High-Watermark mit aktuellem Konto vergleichen Nun meine Frage(n): Hat evtl. jemand so ein Script schon vorliegen? Wenn nicht: wie stelle ich sicher, dass die Historie richtig durchlaufen wird? Rede hier vom MT4. Gruß conglom-o
-
Hallo Leute, hier sind ja Profis am Werk. Dieser Thread soll dazu gedacht sein, den Bastlern (wie mir) da draußen zu erklären, wie man mittels MQL die Zeitdifferenz zu GMT auslesen und diese Info in seinen Indikatoren und EAs verwenden kann. Für alle, die jetzt gespannt auf die Lösung warten: ich habe keine Ahnung, wie das geht . Idee dahinter ist folgender: einige von uns nutzen ja EAs, die zu bestimmten Uhrzeiten handeln sollen (oder nicht). Wenn man nun unterschiedliche Broker mit verschiedenen Zeitangaben hat, dann hat man ein Problem. Oder noch besser: dem Broker fällt einfach mal ein, seine Server von GMT+2 auf GMT+3 umzustellen, weil "die Kunden das so wollen". Da ist es doch am sinnvollsten GMT als Referenz zu nehmen und alles intern daran anzupassen. Dann entfällt auch der ganze Stress bei Umstellung auf Sommerzeit und so. Wer also einen Lösungsvorschlag hat - immer her damit. Vor allem: wie kommt man an GMT ran wenn der Rechner nicht auf GMT läuft? Gruß conglom-o
-
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