Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43254
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 13 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 439
Gesamt: 439
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree3Likes
  • 1 Post By Raul0
  • 1 Post By Raul0
  • 1 Post By next user
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 21.01.18
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 16
Trader93 befindet sich auf einem aufstrebenden Ast
Standard SL/TP an Fractals koppeln

Hallo zusammen,
leider muss ich Euch (wieder mal) mit nervigen Anfängerfragen auf den Keks gehen...
Ich habe die Hoffnung noch nicht aufgegeben den Test EA vollständig abzuschreiben...

Neuster Gedankenblitz:

Der SL oder der TP wird automatisch auf die Unterstützung- oder Widerstandslinie (vom Indikator Fractals ermittelt) gepackt.

Über Tipps wie ich das o.g. bewerkstelligen kann, bin ich, wie immer, sehr dankbar.

Ich bin schon "soweit" gekommen, den Indikator mittels iCustom in den EA zu integrieren. Sieht dann in etwa so aus:

Code:
double SaR = iCustom(NULL,0,"Fractals",clrRed,clrBlue,0,1);
Jetzt fehlt mir ehrlich gesagt die Fantasie, wo ich mit einem "NormalizeDouble" anzusetzen, mögt ihr mir weiterhelfen?
  #2 (permalink)  
Alt 06.02.18
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 16
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Mag mir jemand bei dem Anliegen weiterhelfen?

Vielen lieben Dank
  #3 (permalink)  
Alt 07.02.18
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Hast du dir schon mal angeschaut, welchen Wert die Double-Variable bei deinem Code hat?
Solltest du mal tun.

Ich würde dir die Funktion iFractals() empfehlen:
Code:
double fPriceUP = iFractals(NULL,0,MODE_UPPER,...);
double fPriceLO = iFractals(NULL,0,MODE_LOWER,...);
Für den letzten Parameter halt die entsprechende Kerze. Die Werte kannst du dann für deinen SL & TP nutzen.
  #4 (permalink)  
Alt 10.02.18
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 16
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von next user Beitrag anzeigen
Hast du dir schon mal angeschaut, welchen Wert die Double-Variable bei deinem Code hat?
Solltest du mal tun.

Ich würde dir die Funktion iFractals() empfehlen:
Code:
double fPriceUP = iFractals(NULL,0,MODE_UPPER,...);
double fPriceLO = iFractals(NULL,0,MODE_LOWER,...);
Für den letzten Parameter halt die entsprechende Kerze. Die Werte kannst du dann für deinen SL & TP nutzen.
Hallo next user, hab vielen Dank für deine Hilfe.

Jedoch scheitere ich beim besten Willen weiterhin daran, den Indikator an den SL/TP anzupassen/einzubinden.

Ich hätte jetzt - vermutlich zu naiv - gedacht, dass man alles über die "OrderSend" Funktion eingießen kann. Würde dann für die Longorder in etwa so aussehen:

Code:
 
double fPriceUP = iFractals(NULL,0,MODE_UPPER,0);
double fPriceLO = iFractals(NULL,0,MODE_LOWER,0);
.
.
.
{
      Long = OrderSend (Symbol(),OP_BUY,TradeLots,Ask,10,fPriceLO,fPriceUP,"MA_L",MagicNummer,0,Blue);
      }
Für die Shortorder LO und UP entsprechend umgekehrt.

Mich wundert allerdings, dass im Strategietester der SL/TP nicht auftaucht?! Mach ich was falsch (vermutlich ja)? Aber was?

Kann man darüber hinaus noch in den globalen Variablen deklarieren, dass man bspw. eine Unterstützung überspringen will? Also z.B. bei Ordereröffnung setze den SL nicht auf die nächste, sondern auf die übernächste Unterstützung?
  #5 (permalink)  
Alt 20.02.18
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

das geht so nicht, weil die Fractale erst ab Shift 2 Werte liefern und genauere ab Shift 3.

Z.B.:

PHP-Code:
double fPriceUP iFractals(NULL,0,MODE_UPPER,3);
double fPriceLO iFractals(NULL,0,MODE_LOWER,3); 
Raul
Trader93 likes this.
__________________

Easy Trading Assistant
  #6 (permalink)  
Alt 21.02.18
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Es kann auch Shift 3 und 4 gewesen sein, da bin ich mir gerade nicht sicher.


Zitat:
Zitat von Raul0 Beitrag anzeigen
Hallo,

das geht so nicht, weil die Fractale erst ab Shift 2 Werte liefern und genauere ab Shift 3.

Z.B.:

PHP-Code:
double fPriceUP iFractals(NULL,0,MODE_UPPER,3);
double fPriceLO iFractals(NULL,0,MODE_LOWER,3); 
Raul
Trader93 likes this.
__________________

Easy Trading Assistant
  #7 (permalink)  
Alt 03.03.18
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Ein Teil, warum es nicht geht, hat Raul0 schon erwähnt. Du kannst natürlich kein Fractal bei der aktuellen Kerze erwarten.
Üblicherweise kommt ein Shift von min. 3 zum Einsatz, damit sich die Kerzen für ein Fractal vollständig gebildet haben
und nicht die aktuell laufende Kerze (noch "undefiniert") miteinbezogen wird.

Der andere Teil, der noch zu beachten ist, auch bei Shift 3(4,5,...) muss nicht unbedingt ein Fractal sein.

Eine einfache Möglichkeit wäre folgende:
Code:
double lastfractUP = 0;
double lastfractLO = 0;

for(int i=3; i<20; i++)
{
   if(lastfractUP == 0 && iFractals(NULL,0,MODE_UPPER,i) > 0)
      lastfractUP = iFractals(NULL,0,MODE_UPPER,i);
      
   if(lastfractLO == 0 && iFractals(NULL,0,MODE_LOWER,i) > 0)
      lastfractLO = iFractals(NULL,0,MODE_LOWER,i);
      
   if(lastfractUP > 0 && lastfractLO > 0)
      break;
}
Hier werden als Beispiel die letzten 20 Kerzen (- Shift) geprüft und bei denen die letzten Fractals ermittelt.
Zitat:
Zitat von Trader93 Beitrag anzeigen
Kann man darüber hinaus noch in den globalen Variablen deklarieren, dass man bspw. eine Unterstützung überspringen will? Also z.B. bei Ordereröffnung setze den SL nicht auf die nächste, sondern auf die übernächste Unterstützung?
Klar. Musst dann entsprechend einfach nicht das letzte, aktuelle Fraktal nehmen...
Trader93 likes this.
  #8 (permalink)  
Alt 15.03.18
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 16
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von next user Beitrag anzeigen
Ein Teil, warum es nicht geht, hat Raul0 schon erwähnt. Du kannst natürlich kein Fractal bei der aktuellen Kerze erwarten.
Üblicherweise kommt ein Shift von min. 3 zum Einsatz, damit sich die Kerzen für ein Fractal vollständig gebildet haben
und nicht die aktuell laufende Kerze (noch "undefiniert") miteinbezogen wird.

Der andere Teil, der noch zu beachten ist, auch bei Shift 3(4,5,...) muss nicht unbedingt ein Fractal sein.

Eine einfache Möglichkeit wäre folgende:
Code:
double lastfractUP = 0;
double lastfractLO = 0;

for(int i=3; i<20; i++)
{
   if(lastfractUP == 0 && iFractals(NULL,0,MODE_UPPER,i) > 0)
      lastfractUP = iFractals(NULL,0,MODE_UPPER,i);
      
   if(lastfractLO == 0 && iFractals(NULL,0,MODE_LOWER,i) > 0)
      lastfractLO = iFractals(NULL,0,MODE_LOWER,i);
      
   if(lastfractUP > 0 && lastfractLO > 0)
      break;
}
Hier werden als Beispiel die letzten 20 Kerzen (- Shift) geprüft und bei denen die letzten Fractals ermittelt.

Klar. Musst dann entsprechend einfach nicht das letzte, aktuelle Fraktal nehmen...
Hi zusammen,

vielen lieben Dank für eure Rückmeldung. Ich habe in der Zwischenzeit einen anderen Ansatz verfolgt. Ich habe, um Unterstützungen (SL) und Widerstände (TP) zu ermitteln, die Fibonnaci genutzt. Hierzu habe ich folgendes angestellt:#

Code:
// Hochs ermitteln
   int FindHigh = iHighest(NULL,0,MODE_HIGH,15,3);
   double HighestHigh = High[FindHigh];
  
// Tiefs ermitteln
   int FindLow = iLowest (NULL,0,MODE_LOW,20,3);
   double LowestLow = Low[FindLow];
  
// Fibonacci Retracements

   double Differenz = HighestHigh - LowestLow;
  
   double Level_1 = LowestLow + (Differenz * 0.236); 
   double Level_2 = LowestLow + (Differenz * 0.382);
   double Level_3 = LowestLow + (Differenz * 0.500);
   double Level_4 = LowestLow + (Differenz * 0.618);
   double Level_5 = LowestLow + (Differenz * 0.764);
   double Level_6 = LowestLow + (Differenz * 1.000);
   double Level_7 = LowestLow + (Differenz * 1.616);
   double Level_8 = LowestLow + (Differenz * 2.618);
Im Anschluss einfach via OrderSend() bspw.Level_1 (SL) ,Level_5 (TP) einbetten (Bsp. LongOrder)
Thema geschlossen

Lesezeichen

Stichworte
fractals, fractals sl, fractals stoploss, fractals takeprofit, fractals tp, mql4, programmierung, programmierung metatrader, programmierung mql4, sl, stoploss, takeprofit, tp

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------