![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich versuche immer noch, einen akustischen Alarm zu diesem Indikator hinzuzufügen...... Kann jemand den Code für mich überprüfen, da er nicht funktioniert?
//|
//|
//+------------------------------------------------------------------+
#property copyright "niva"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 Red
extern bool Email_Enabled = false;
extern bool Alert_Enabled = true;
//---- input parameters
int CountBars=10000;
//---- buffers
double uptrend[];
double downtrend[];
bool AlertSent,EmailSent;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,217);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,218);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
int i,shift,counted_bars=IndicatorCounted();
int uptrend, downtrend;
for (shift = CountBars; shift>=0; shift--)
{
if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){
uptrend = uptrend+1;
downtrend=0;
}else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){
downtrend=downtrend+1;
uptrend=0;
}
else{
uptrend=0;
downtrend=0;
}
if (uptrend==3)
{
val1[shift]=Low[shift];
}
if (downtrend==3)
{
val2[shift]=High[shift];
}
}
return(0);
}
//----
if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent)
{
Alert(Symbol() + "HiLow+3");
AlertSent=true;
}
if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent)
{
SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered");
EmailSent=true;
}
if(downtrend[0] == 0 && uptrend[0] == 0 )
{
EmailSent=false;
AlertSent=false;
}
return(0);
}
//+------------------------------------------------------------------+Danke
Irgendwo im Code sind die Klammern unausgewogen. Es scheint, dass irgendwo ein } und ein ) im Code fehlen. Schauen Sie sich den Code an und zählen Sie, wie viele offene und geschlossene Klammern vorhanden sind (+1 für offene und -1 für geschlossene Klammern), damit Sie wissen, wie viele fehlen (z. B. bedeutet eine +2-Zählung zwei rechte Klammern '}' oder umgekehrt). Wenn er richtig eingerückt ist, solltest du herausfinden können, wo du die richtige } einfügen musst. Viel Spaß bei der Suche Der
Ich habe es geschafft, einige Einstellungen zu ändern und schließlich glaube ich, fast am Ziel zu sein! Jetzt nach der folgenden Codierung sagt es:
'shortSL' - Variable nicht definiert
'longSL' - Variable nicht definiert
So sieht es aus:
//+------------------------------------------------------------------+
//| Salgado.mq4 |
//| salgadoguilherme@hotmail.com
//| |
//+------------------------------------------------------------------+
#Eigenschaft Copyright ""
#property link "salgadoguilherme@hotmail.com"
extern bool trade=true;
extern int barstocount=50;
extern double lots=0.01;
extern int StopLoss=40;
extern int TakeProfit=10;
extern int Schlupf=3;
extern int magicnumber=816;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(trade==true)
{
//M15
double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,0);
double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1);
double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,0,0);
double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,1,0);
double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point;
//Alert(DoubleToStr(slopeM15,2);
Comment(
"\n", "M15 Steigung | ",slopeM15,
//KURZE EINTRAGUNG
if(slopeM15<0 && IsTradeAllowed()==true)
{
bool shortopen=false;
int ord_cnt1=OrdersTotal();
for (int start1=0;start1<ord_cnt1;start1++)
{
OrderSelect(start1, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==magicnumber && OrderType()==OP_SELL)
{shortopen=true;}
}
if(shortopen==false)
{
double M15High=iHigh(Symbol(),PERIOD_M15,0);
if(M15High>=M15_resistance)
int shortticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2);
if(shortticket<0)
{
//LONG EINTRITT
if(slopeM15>0 && IsTradeAllowed()==true)
{
bool longopen=false;
int ord_cnt=OrdersTotal();
for (int start=0;start<ord_cnt;start++)
{
OrderSelect(start, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber()==magicnumber && OrderType()==OP_BUY)
{longopen=true;}
}
if(longopen==false)
{
double M15Low=iLow(Symbol(),PERIOD_M15,0);
if(M15Low<=M15_support)
int longticket=OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2);
if(longticket<0)
{
//----
return(0);
}
//+------------------------------------------------------------------+
Kerzentyp Indy
Hallo,
Ich brauche dringend MQL-Tutorials, wie man kerzenförmige Indikatoren wie den beigefügten Chart programmiert. Nur die Links zu irgendwo innerhalb oder außerhalb dieses Forums wird in Ordnung sein. Vielen Dank dafür.
Piper.
Könnte mir jemand sagen, wie ich das Folgende codieren kann;
Zählen Sie die Anzahl der Balken, seit ein kurzfristiger MA einen langfristigen MA gekreuzt hat.
Ich danke Ihnen!
EA-Code zum Wiederaufnehmen von Trades nach dem Herunterfahren.
Hallo,
Gibt es einen Beispielcode für einen EA, der die Verwaltung der Trades wieder aufnehmen kann, nachdem er gestoppt wurde und dann wieder zurückkommt?
Danke!
JForex
Wie wird codiert?
Könnte mir jemand sagen, wie man das Folgende codiert?
Zählen Sie die Anzahl der Balken, seit ein kurzfristiger MA einen langfristigen MA gekreuzt hat.
Ich danke Ihnen!Ja!
Zählen Sie die Balken, seit sie sich gekreuzt haben:
int i;
bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0));
bool sgLast;
for(i=0;i<iBars(NULL,0);i++) {
sgLast = shortGreater;
shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i));
if(shortGreater !== sgLast) {
brechen;
}
}
Die Variable i enthält dann die Anzahl der Balken seit der Kreuzung der beiden.
Sie können mir gerne etwas Geld schicken, wenn Sie es hilfreich fanden. Ich wäre Ihnen dankbar dafür.
Hier ist es.
Ich habe es geschafft, einige Einstellungen zu ändern und endlich glaube ich, fast am Ziel zu sein! Jetzt nach der folgenden Codierung sagt es:
shortSL' - Variable nicht definiert
longSL' - Variable nicht definiert
Hier ist sie. Ich habe das, was du gemacht hast, so verändert, dass es sich kompilieren lässt. Vorsicht, Ihre Logik ist schlecht, scheint unvollständig zu sein, und es wird wahrscheinlich nicht das tun, was Sie wollen.
Aber das war's schon.
- ChazzGeld
P.S. $170 ist EXTREM billig für ein Programm. Ich schreibe ein- oder zweimal im Jahr maßgeschneiderte Investitionssoftware für fünfstellige Beträge. Programmierer, die diese Art von Arbeit übernehmen, sollten sich in Acht nehmen - Sie müssen ALLES überprüfen, um sicherzugehen, dass Sie keinen Fall übersehen. Ein Fehler ist so gut wie ein zufällig ausgewählter Händler.
Sie können mir gerne etwas Geld schicken, wenn Sie es hilfreich fanden. Ich weiß den Gedanken zu schätzen.
Code von Standard-ZigZag
Hallo
dieser Code stammt aus der Standarddatei "ZigZag.mq4"
"if (counted_bars==0 && downloadhistory) // history wurde heruntergeladen"
counted_bars==0 : prüft, ob der Wert gleich Null ist........ ist ok.
downloadhistory : es gibt keine Bedingungsprüfung, warum??? bitte löschen Sie dies
Danke!
Öffnen 2 ORDERS und Schließen 2 ORDERS..CONSISTENTLY.
Ich habe lange Zeit versucht, meinen EA dazu zu bringen, immer zwei Aufträge für einen Kauf oder Verkauf zu öffnen. Eine mit TP und die andere mit KEINEM. Nach dem Öffnen von 2 Aufträgen dann nicht mehr öffnen, bis Zeit zum Handel in die entgegengesetzte Richtung.
Aus irgendeinem Grund schaue ich mir die Kontohistorie an und sehe 1 Order, dann 3 Orders, dann 4 Ors, dann 2 Orders und es läuft wie Müll.
Kann JEDER Coding Master hier einen Blick werfen und mir Input geben?
Danke, !!!!!!!!!!!!!!!!
OFFENE BESTELLUNGEN
-------
BuyTicket1 = False;
BuyTicket2 = False;
while (!BuyTicket1) {
BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
Sleep(PausebetweenOrders * 1000);}
//if (BuyTicket1 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open 1st Buy");
Sleep(1000);
while (!BuyTicket2) {
BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet);
Sleep(PausebetweenOrders * 1000);}
------------
ORDERS SCHLIESSEN
------------
if(OrdersTotal() > 0) {
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
if(OrderType() == OP_SELL){
for (int j = OrdertotalCloseSell-1; j >= 0; j --) {
PositionClosedSell = False;
AttemptsTriedCloseSell = 0;
OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {
AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1;
OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen);
Sleep(PausebetweenOrders * 1000);
if( OrderCloseSell == True ) { // Position erfolgreich geschlossen.