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.

Hilfe bei Programmierung

Geschrieben

MQL Anfänger hat eine Bitte an euch,ich habe versucht ein für euch leichten E/A zu schreiben.

Der E/A besteht aus drei MA.

Die 1 Funktion Long

sollte wenn der kurzfristiger gl.D.(ma1)über dem mittelfristigen(ma2),und der mittefristige über dem langfristigen (ma3)ist,Long gehen also Buy. und den Trade schließen wenn (ma1) unter (ma2) fällt.

 

Die 2 Funktion Short

wenn der kurzfristiger (ma1)unter dem mittelfristigen(ma2),und der mittelfristige

unter dem langfristigen(ma3) ist, Short gehen also Sell.

und den Trade schließen wenn (ma1)über den (ma2) steigt.

 

So die Beschreibung,

der Editor meldet keine Fehler,aber das hat ja für die Funktionen keine

Bedeutung.

Im Long bereicht kauft er und verkauft auch.das wars aber schon,

Ich muß in der Logik,oder im Programmcode fehler haben,

kann einer von euch mir weiterhelfen.das der E/A Funktioniert.?

Bis bald

karlos10

 

-------------------------------------------------------------------------------------

extern int Profit= 80;
extern int Stopp = 25;
extern int MagicNumber = 700;
extern int ima1 = 5;
extern int ima2 = 35;
extern double lot = 0.1;
extern int Slippage = 2;


int CalcCurOrd(string symbol)
 {
  int 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);
 }


bool Funktion_1_Long()    
 {
  double ma1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,0);
  double ma2 = iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE,0);
  double ma3 = iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,0);
  
  if (ma1>ma2 && ma2 > ma3)   // kurzfristiger gl.D. liegt über dem mittelfristigen
                            // und der mittefristige über dem langfristigen
  
  return(true); else return(false);
  }
 
   
bool Funktion_2_Short()    
 {
  double ma1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,0);
  double ma2 = iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE,0);
  double ma3 = iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,0);
  
  if (ma1<ma2 && ma2<ma3)   // kurzfristiger gl.D. liegt unter dem mittelfristigen
                            // und der mittefristige unter dem langfristigen
  
  return(true); else return(false);
   
 
 }

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen() 
 {
  int res;
  
     if(Funktion_1_Long())
    
        {
         res=OrderSend(Symbol(),OP_BUY,lot,Ask,Slippage,
                       0,0,"long",MagicNumber,0,White);
        }
 //----OrderSend(Symbol(),OP_BUY,lot,Ask,Slippage,
 //                   0,0,"long",MagicNumber,0,White);
 //                   prevtime = Time[0]; return;

    if(Funktion_2_Short())
    
     
        {
         res=OrderSend(Symbol(),OP_SELL,lot,Bid,Slippage,
                       0,0,"short",MagicNumber,0,Red);
        }
       
  }
  
// Check for close order conditions

void CheckForClose()
 {    
  for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)     break;
      if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;     
      
      // Check order type
            
      if(OrderType()==OP_BUY)
        {      
         if (Bid>(OrderOpenPrice()+Profit*Point)) 
           {
            OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Green);
            return(0);
           }
        }
        
         
      if(OrderType()==OP_SELL)
        {    
         if (Ask<(OrderOpenPrice()-Profit*Point))
           {
            OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
            return(0);
           }
        }
                
     }
  return(0);
 }
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start()
 {
   
  if(CalcCurOrd(Symbol())==0) CheckForOpen();
  if(CalcCurOrd(Symbol())!=0) CheckForClose();

 }
//+------------------------------------------------------------------+

karlosMA.mq4

Bearbeitet von whipsaw
mql tag hinzugefügt

  • Antworten 98
  • Aufrufe 10,8Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Most Popular Posts

  • Das Selbe macht Ehlers auch mit US Treasury Bond Futures. Die Zeitachse wird in Sektoren von z.B. 10 Bars eingeteilt und es wird für jeden Bar geschaut, wo - bezogen auf das Hoch und das Tief innerha

Veröffentlichte Bilder

Featured Replies

Geschrieben
Hallo ich habe jetzt gemerkt das das Prog so nicht gut funktioniert.

meine Idee einen ma als SL zu nehmen, mit der Periode 2 und Ebene 25/ -25.long/short

nur ich weiß nicht das in einen Code zu bringen,kann einer da mir weiterhelfen.?

Was meinst du denn mit Ebene? Beim Kurs 25 Punkte über dem 2er MA SL für long und 25 Punkte drunter SL für short? Auf welcher Zeitebene soll er denn laufen? Und auf welchem Underlying?

 

Versuche mal bitte etwas genauer zu definieren, was Du willst. Dann helfen wir Dir auch gerne.

Geschrieben
  • Autor
Was meinst du denn mit Ebene? Beim Kurs 25 Punkte über dem 2er MA SL für long und 25 Punkte drunter SL für short? Auf welcher Zeitebene soll er denn laufen? Und auf welchem Underlying?

 

Versuche mal bitte etwas genauer zu definieren, was Du willst. Dann helfen wir Dir auch gerne.

ja okay werde ich morgen machen.

Geschrieben
  • Autor
Versuche mal bitte etwas genauer zu definieren, was Du willst. Dann helfen wir Dir auch gerne.

@conglom-o

ich habe jetzt einen Indikator gefunden der 3 mas beinhaltet,die Programmierarbeit wie in meinem Versuch

könnte man sich ja sparen,auch wenn der Indikator repaintet.

meine Frage wie kann man ihn in einen E/A einpflegen,so das wenn die Schwarze Linie von unten nach oben

die Blaue Linie kreuzt Long geht,und im gegenfall Short.(in meinem Bild habe ich die schwarze Linie Weiß eingestellt),besser Sichtbar.

wenn man ihn nicht einpflegen kann,wie muß er extern aufgerufen werden,bzw was ist Prog technisch besser.?

bis dann

post-780-1262692362_thumb.png

FX_FISH_2MA.mq4

  • 2 Wochen später...
Geschrieben
  • Autor

hallo

ich habe beim durchlesen des forums gemerkt das diese Frage nicht so allgemein beantwortet werden kann.

kennt den einer/eine diesen Indikator.?

Gruß karlos

Geschrieben
kennt den einer/eine diesen Indikator.?

 

kennen nicht direkt, es könnte eine Abwandlung des durchaus bekannten ic.arrow.right.png Fisher Transform sein, ist aber nur eine Vermutung.

 

Auf jeden Fall sieht er im Sinne von Divergenzen sehr gut aus, zumindest auf dem Zeitrahmen.

 

Du hast weiter oben geschrieben, das er repaintet, die Vergangenheit also verändert. Wenn ja, dann würde ich keinen Versuch eines automatischen Systems starten, das führt zu nichts.

Geschrieben
  • Autor
Auf jeden Fall sieht er im Sinne von Divergenzen sehr gut aus, zumindest auf dem Zeitrahmen.

Du hast weiter oben geschrieben, das er repaintet, die Vergangenheit also verändert. Wenn ja, dann würde ich keinen Versuch eines automatischen Systems starten, das führt zu nichts.

@ronner

nein ronner ob der repaintet weiß ich nicht,ich habe nur irgendwo gelesen das alle Indikatoren repainten,

ich habe das so als wahr angenommen.ist es nicht so ?

weißt du mehr über repainten.?

Geschrieben
ich habe das so als wahr angenommen.ist es nicht so ?

 

Repainten kommt bei einigen Indikatoren vor, vorrangig solchen die Zyklusberechnungen durchführen. Bei den überwiegend meisten anderen (normalen) Indikatoren bleibt der Wert auch rückblickend gleich. Anders wären auch kaum Ergebnisse zu erzielen, da man sich nie darauf verlassen könnte was angezeigt wird.

 

Ich würde nicht sagen, das der obige repaintet da er doch recht normal ausschaut im Sinne von MACD etc. Dann sollte eine Automatisierung möglich sein. Aber ob die Ergebnisse den des händischen Handels übertreffen können - müßte man herausfinden. Das subjektive Sehen von z.B. Divergenzen kann oft nicht nachgebildet werden (oder zumindest nicht so einfach).

  • 1 Jahr später...
Geschrieben
meine Frage wie kann man ihn in einen E/A einpflegen,so das wenn die Schwarze Linie von unten nach oben

 

Der Code stammt von einem Spanier und er hat die Fisher Transformation nach Ehlers programmiert . Quellen dazu zum einen http://de.wikipedia.org/wiki/Korrelationskoeffizient#Fisher-Transformation

und zum anderen das Buch http://www.amazon.de/Cybernetic-Analysis-Stocks-Futures-Cutting-Edge/dp/0471463078/ref=sr_1_1?ie=UTF8&s=books-intl-de&qid=1298150350&sr=8-1-catcorr

 

Grundlage : Ehlers bezweifelt die (unsere !!) unausgesprochene aber immerwährende Annahme, dass (unsere) Kurse sich innerhalb der Gausschen Normalverteilung ("Glockenkurve") bewegen und

nutzt stattdessen einen Korrelationskoef. (eben den nach Fisher, gibt noch mehr ) .

 

Und genau das wurde in dem Indi FX_FISH von diesem spanischen Kollegen programmiert : Zeilen 115/116/117 in seinem Code .

 

Das alles schreibe ich hier, weil ich die Information "repaint" nicht verstehe und mir Klärung dazu wichtig ist . Denn ich arbeite gerade an genau dem Thema E/A und Fish in Verbindung mit

CoG .

 

KB

Geschrieben

das die kurse nicht in ner gaußschen normalverteilung liegen ist aber eigentlich bekannt.

Steht auch schon im Kahler Buch "Trading (nicht) nur für Extremsituationen".

Es gibt halt einfach viel zu häufig Tage mit extremen Kursbewegungen wie z.B +- 2% bei einem der Majorindizes.

Was meinst du da mit "unsere" Annahme?

 

Fürs repainting gibts ein ganz einfaches Beispiel. Stell dir einen ZigZag-indikato vor.

Wir haben ein Tief lokalisiert. Danach zeichnet der Indikator eine Linie zum Hoch des nächsten Bars (bis ein eindeutiges neues höchstes Hoch ausgewiesen ist).

Wenn du jetzt z.B mehrere höhere Hochs und Tiefs hintereinander hast ("und die Steigung nicht gleich ist") wird die zuvor gezeichnete Linie sicher bei jedem neuen Bar verändert sein.

Geschrieben

Grundlage : Ehlers bezweifelt die (unsere !!) unausgesprochene aber immerwährende Annahme, dass (unsere) Kurse sich innerhalb der Gausschen Normalverteilung ("Glockenkurve") bewegen und

nutzt stattdessen einen Korrelationskoef. (eben den nach Fisher, gibt noch mehr ) .

Nun, Ehlers verwendet die Fisher Transformation dafür, dass er die Datenverteilung einer Normalverteilung annähert. Die Fishertransformation hat eine nichtlineare Transferfunktion, die die mittleren Werte stärker gewichtet als die am Rand liegenden. Der Effekt ist, dass dadurch Oszillatoren sehr "scharfe" Spitzen bekommen.

 

Das alles schreibe ich hier, weil ich die Information "repaint" nicht verstehe und mir Klärung dazu wichtig ist . Denn ich arbeite gerade an genau dem Thema E/A und Fish in Verbindung mit

CoG .

 

KB

Und dieser Indikator repaintet (leicht). D.h. er verändert bei der Berechnung nicht nur den aktuellsten Bar, sonder auch noch den Vorletzten.

Geschrieben

Danke, WOGO (für "repaint")

 

Der Effekt ist, dass dadurch Oszillatoren sehr "scharfe" Spitzen bekommen.

:yes4:

und das konnte ich bislang besonders schön bei einem Vergleich des Fish-Indi mit einem MACD beobachten .

Nun hege ich scheinbar wohl zu recht Hoffnung auf bessere Signale .

 

KB

 

PS.: Q2k1 =>"alles bekannt" => dann ist erstaunlich, wieviele Trader unverändert konventionelle Tools

einsetzen,denn schon eine SMA gewichtet gleich

Geschrieben

Das alles schreibe ich hier, weil ich die Information "repaint" nicht verstehe und mir Klärung dazu wichtig ist [

KB

@KB

Siehe auch hier

Repaint

Geschrieben

PS.: Q2k1 =>"alles bekannt" => dann ist erstaunlich, wieviele Trader unverändert konventionelle Tools

einsetzen,denn schon eine SMA gewichtet gleich

 

Sorry das verstehe ich nicht. was hat die gewichtung des SMA damit zu tun, dass die Kurse nicht die Form einer Gaußcshen Normalverteilung haben?

Geschrieben

@Q2k1 :

 

Gauss geht von Normalverteilungen aus , dass trifft bei Kursen nicht (immer) zu, da Kurs theoretisch von menschlichen Emotionen beeinflußt sind (ok, nun kann man automatischen Handel dagegen stellen).

Diese sind eben nicht immer normal verteilt (Panik, Gier ,s. oben von Dir benannte Quelle von Kahler) .

1.) Was ich meine, ist das Verhalten bzw die Bedeutung von bestimmten Kursen , die besonders häufig vorzufinden sind => Widerstände und Support .

2.) Und der Volatilität : Wenn der Kurs bei einem bestimmten Kurs verharrt, dabei aber eine hohe Volatilität zu verzeichnen ist, dann hat dieser mehr Bedeutung als derselbe Kurs bei geringer Vola.

 

Eine SMA würde platt den mathematischen Durchschnittswert bestimmen . Aber bei dem was ich hier schreibe , merke ich schon auch , dass ich kräftig vermische . Denn den 2.Punkt, die Volatilität decke ich weder mit Gauss noch mit Fisher ab . Da gibt es - glaube ich - gewichtete Indi´s . Volumentrading ist da wohl ein Stichwort, nicht wahr ?

 

KB

Geschrieben

Das ganze geht immer noch nicht gegen einen SMA. Wenn man schon mit Wahrscheinlichkeitsverteilungen argumentiert, kann man auch sagen, das aufgrund des zentralen Grenzwertsatzes jede Verteilung gegen die Normalverteilung konvergiert und der SMA ist ja ein Schritt dorthin. d.h. Egal welche Verteilung die Kurse haben, mit dem SMA kommst wieder in Richtung Normalverteilung (wenn auch nur einen kleinen Schritt ;)

 

Disclaimer: W!theorie is schon ein paar Jährchen her und will jetzt nit meine Unterlagen suchen, also korrigiert mich wenn ich mich irre.

Geschrieben
Wenn man schon mit Wahrscheinlichkeitsverteilungen argumentiert,

 

mein Beitrag beginnt mit #86 . Und da beziehe ich mich auf den Post #81 , versuche ein wenig beizutragen und dabei für mich selber auch zu lernen .

 

Nun habe ich mit Interesse http://de.wikipedia.org/wiki/Zentraler_Grenzwertsatz gelesen .

 

:wink2:

 

.... und schweige um nicht weiteren Stoff zu liefern , sonst divergiert diese Diskusion noch in das Uferlose .

 

:loungelizard:

 

Aber einen Nachsatz habe ich doch noch und das meine ich ernst und nicht ironisch, und ist Grund warum ich mich mit

solcher Theorie befasse : In vielen vielen Charts habe ich immer wieder versucht, mathematisch (und somit eben programmierbar) Widerstände

und Supports zu beschreiben . Dabei ist mir aufgefallen, dass der Preis sich eben nur schlecht mit Gauss beschreiben läßt . Die Suche nach

Alternativen und ein "Treffen mit CoG" haben mich dann zur Fisher Transform gebracht . Und so bin ich in diesem Thread gelandet (#81).

 

Und wer mir da bessere Wege weisen kann, dem wäre ich wirklich dankbar .

 

KB

Geschrieben

mein Beitrag beginnt mit #86 . Und da beziehe ich mich auf den Post #81 , versuche ein wenig beizutragen und dabei für mich selber auch zu lernen .

 

.... und schweige um nicht weiteren Stoff zu liefern , sonst divergiert diese Diskusion noch in das Uferlose .

 

Sorry, falls es falsch rübergekommen ist, war absolut keine Kritik an dir. Hab die Diskussion auch interessiert verfolgt und wollte einfach mal wieder meinen Senf dazugeben ;)

 

Das Problem mit Wahrscheinlichkeiten ist eben das sie nur wahrscheinlich sind und nicht fix. Es gibt da soviele tolle Modelle um Aktienkurse zu modelieren. Ich hab ein paar Jahre am Statistikinstitut der Uni gearbeitet wo sich die Profs damit beschäftigen und sagen wir so: Seltsamerweise ist keiner der Profs an der Börse aktiv geschweige denn reich...

 

Also analysieren und für sich was daraus lesen: gut. Aber sich davon den Gral versprechen is eher nicht. Im Endeffekt basiert doch alles auf dem gleichen Chart, Indikatoren sollen es nur für uns Menschen "leichter lesbar" machen. Nur die Frage was man selber eben am leichtesten "liest".

Geschrieben

Zum Zentralen Grenzwertsatz:

Eine Voraussetzung ist schon dass die Zufallsvariablen unabhängig sein müssen.

Da stellt sich schon die Frage ob das wirklich gegeben ist :-)

 

Zur nicht Standardverteilung.

Kahler hat in seinem Buch ne Grafik drinnen wo er halt einfach die Veränderungen von Close zu Close des Dow Jones (von 1928-2008) auflistet und nach Häufigkeit gewichtet. z.B in 0,25% Schritten und dann die Auftrtittswahrscheinlichkeit angibt

 

Das ganze sieht halt wunderbar nach ner Normalverteilung aus (in nem Bereich von -2,75% bis 3%. Aber weiter links und weiter recht also bei -3% und 3,25% gibt es auf einmal einen Ausreißer nachen oben.

Summiert sind dass irgendwie 2% der Fälle. Das sind dann deutlich mehr als 2 Standardabweichungen erlauben würden.

 

Am besten einfach mal die Schlusskursdifferenzen von irgendner Aktie so untersuchen (das muss man diskret machen). Dann sieht man das auch ganz schön.

 

 

@kb das mit dem mathematischen was automatisch programmierbar ist leuchtet mir nicht ganz ein. Dann würden wir ja nur noch computergestütze beweise haben :) Ich glaube aber ich weiss worauf du hinaus willst

Geschrieben

Zur nicht Standardverteilung.

Kahler hat in seinem Buch ne Grafik drinnen wo er halt einfach die Veränderungen von Close zu Close des Dow Jones (von 1928-2008) auflistet und nach Häufigkeit gewichtet. z.B in 0,25% Schritten und dann die Auftrtittswahrscheinlichkeit angibt

Das Selbe macht Ehlers auch mit US Treasury Bond Futures.

Die Zeitachse wird in Sektoren von z.B. 10 Bars eingeteilt und es wird für jeden Bar geschaut, wo - bezogen auf das Hoch und das Tief innerhalb dieses Sektors - liegt der Kurs.

Ehlers kommt hier auch auf eine Wahrscheinlichkeitsdichteverteilung, die an den Rändern stark ansteigt.

Ich hab dann mal eine Messroutine für den EURUSD programmiert. Da sieht das dann aber ganz anders aus.

VerteilungEURUSD.jpg

(Das Rote stellt übrigens die Fisher-Transformierte des Balkendiagramms dar)

 

Die obige Aussage gilt als nicht für den Forex-Markt.

Geschrieben

Danke für die Mühe.

Aber das sieht auch lange nicht aus wie ne Normalverteilung, oder? Was ist denn da der Erwartungswert. Der liegt ja irgendwie nicht in der Mitte. Das sieht ja eher aus wie ne M-Kurve.

 

Aber vielleicht ists bei Devisen auch wieder was anderes :)

Geschrieben

Aber vielleicht ists bei Devisen auch wieder was anderes :)

Genau das wollte ich damit sagen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

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.