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.

Bollinger Bänder

Geschrieben

Hallo :vibration:

 

der Indikator Bollingerbänder schreibt sich so: iBands(NULL,0,20,2,0,PRICE_LOW,MODE_LOWER,0)

 

So aus dem Meta-Editor entnommen.

 

Was ist MODE_LOWER ?

 

Und wie bekomme ich nur das oberer oder das untere Bollinger Band?

Featured Replies

Geschrieben
Was ist MODE_LOWER ?

 

Und wie bekomme ich nur das oberer oder das untere Bollinger Band?

 

Hallo Omega,

 

das ist genau das was du suchst.

 

Mit MODE_LOWER, kannst du auf das untere Bollinger Band zugreifen und mit MODE_HIGHER auf das obere.

 

Viele Gtüße

Knochen

Geschrieben

die Antwort hast du dir ja schon selbst gegeben und Knochen das unterstrichen.

 

Ein kleiner Tipp: Sowas kann man sehr schnell in Erfahrung bringen, wenn man das Fragliche einfach nur markiert und F1 drückt. Das funktioniert auch in verschiedensten Bereichen vom Strategytester und anderen Programmkomponenten, kontextsensitiv wird die entsprechende Hilfe gesucht.

  • 4 Jahre später...
Geschrieben

Hallo!

Ich bin neu in der Community und habe ebenfalls eine Frage zum Bollinger Band. Ich weiß, dass der Chat hier schon etwas alt ist, aber ich wollte nicht extra einen neuen aufmachen.

 

Ich beschäftige mich erst seit Kurzem mit der MQL4 und würde gerne mein erstes Programm schreiben. Eigentlich nichts besonderes, es soll einfach nur einen Shorttrade gesetzt werden wenn der Kurs über dem oberen Bollinger Band ist (+ggf Longtrade schließen) und einen Longtrade wenn er sich unter dem unteren Bollinger Band (+ggf Shorttrade schließen) befindet.

 

Das Ergebnis ist, dass so lange wie der Kurs zwischen den BB´s ist nichts passiert (so weit so gut), aber sobalt er auserhalb kommt öffent und schließt er abwechselnt Buy und Short Positionen im Sekundentakt.

 

Hier mal der Code:


 

 

extern double LotSize = 0.1;
extern double StopLoss = 50;
extern double TakeProfit = 100;

extern int Slippage = 90;
extern int MagicNumber = 123;

int BuyTicket;
int SellTicket;
double UsePoint;
int UseSlippage;


int init()
	{
      UsePoint = PipPoint(Symbol());
      UseSlippage = GetSlippage(Symbol(),Slippage);
	}





int start()
{		


   double BBunten = iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0);	
   double BBoben = iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_HIGH,0);


   // Kaufstrade erstellen 
   if( BBunten >= Bid && BuyTicket == 0)
      {
	   OrderSelect(SellTicket,SELECT_BY_TICKET);
	
	
	   // Verkaufstrade schließen				
	   if(OrderCloseTime() == 0 && SellTicket > 0)
	      {
	      double CloseLots = OrderLots();
	      double ClosePrice = Ask;
	      bool Closed = OrderClose(SellTicket,CloseLots,ClosePrice,UseSlippage,Red);					
	      }				

	   double OpenPrice = Ask;
				
	   // Stop und Limit errechnen
	   if(StopLoss > 0) double BuyStopLoss = OpenPrice - (StopLoss * UsePoint);
	   if(TakeProfit > 0) double BuyTakeProfit = OpenPrice + (TakeProfit * UsePoint);
				
	   BuyTicket = OrderSend(Symbol(),OP_BUY,LotSize,OpenPrice,UseSlippage,BuyStopLoss,BuyTakeProfit,"Buy Order",MagicNumber,0,Green);

	   SellTicket = 0;
       }





   // Verkaufstrade erstellen 
   if( BBoben <= Ask && SellTicket == 0)
      {
	   OrderSelect(BuyTicket,SELECT_BY_TICKET);
	

	   // Kaufstrade schließen
	   if(OrderCloseTime() == 0 && BuyTicket > 0)
	      {
	      CloseLots = OrderLots();
	      ClosePrice = Bid;
	      Closed = OrderClose(BuyTicket,CloseLots,ClosePrice,UseSlippage,Red);
	      }	
	  	
	   OpenPrice = Bid;
		
	   // Stop und Limit errechnen		
	   if(StopLoss > 0) double SellStopLoss = OpenPrice + (StopLoss * UsePoint);
	   if(TakeProfit > 0) double SellTakeProfit = OpenPrice - (TakeProfit *	UsePoint);
				
	   SellTicket = OrderSend(Symbol(),OP_SELL,LotSize,OpenPrice,UseSlippage,SellStopLoss,SellTakeProfit,"Sell Order",MagicNumber,0,Red);
	
	   BuyTicket = 0;
       }
			
return(0);
}





double PipPoint(string Currency)
	{
		int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
		if(CalcDigits == 2 || CalcDigits == 3) double CalcPoint = 0.01;
		else if(CalcDigits == 4 || CalcDigits == 5) CalcPoint = 0.0001;
		return(CalcPoint);
	}

int GetSlippage(string Currency, int SlippagePips)
	{
		int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
		if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;
		else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;
		return(CalcSlippage);
	}

Wenn die Variable BuyTicket bzw ShortTicket > 0 ist, weiß der MT ja, dass ein Trade offen ist und sollte ihn dann schließen...

 

Nur bei der Zeile "if( BBoben <= Ask && SellTicket == 0)" bin ich mir ziemlich unsicher, da ich nicht genau weiß ob man das so schreiben kann...

 

 

Würde mich über jeden Tipp freuen.

Und seid nicht so streng mit mir, wie gesagt bin ja erst neu hier. grin.gif

Geschrieben

Wenn die Variable BuyTicket bzw ShortTicket > 0 ist, weiß der MT ja, dass ein Trade offen ist und sollte ihn dann schließen...

 

Nur bei der Zeile "if( BBoben

 

Ein großes Problem sehe ich schon mal darin, dass bei einem Neustart der EA seine Orders evtl. nicht findet, da die Variablen Buyticket und Sellticket ja gelöscht wurden. Hier würde ich mit Magicnummern arbeiten.

 

Zum Problem: Du erwischt das obere Bollinger Band korrekterweise so: double BBoben = iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);

 

Denke mal, daran wird es liegen.

Geschrieben

Es Geht! Geile Sache.

Die Bands heißen MODE_UPPER und MODE_LOWER, daran lag es...

 

An den MagicNumbers versuche ich mich gleich mal.

 

Danke dir vielmals! biggrin.png

Geschrieben

Danke dir vielmals! biggrin.png

 

Kein Problem - musste auch erstmal selber nachgucken, wie das korrekt benannt wird wink.gif.

 

P.S.: Willkommen bei Tom-Next :Howdy:!

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.