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
Jo
Etwa so:
Hallo,
Wie kann ich einen Alarm in einem Indikator codieren?
Wie kann ich zum Beispiel eine Warnung ausgeben, wenn MACD[0]>MACD[1]?
Danke für die Hilfe.
JoJo
Etwa so:
Danke Mladen, aber wo?
Ich hatte die Meldungen :
Red -If_function nicht definiert
Red-Alert_Semikolon erwartet
------------------------------------------------------------------------------------------------------------------
#Eigenschaft indicator_separate_window
#Eigenschaft indicator_buffers 2
#Eigenschaft indicator_color1 Silber
#Eigenschaft indicator_color2 Rot
#eigenschaft indicator_width1 2
//---- Indikator-Parameter
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- Indikatorpuffer
double MacdBuffer[];
double SignalPuffer[];
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//---- Zeichnungseinstellungen
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Digits+1);
//---- Indikatorpuffer-Zuordnung
SetIndexPuffer(0,MacdBuffer);
SetIndexPuffer(1,SignalPuffer);
//---- Name für das Datenfenster und die Bezeichnung des Indikator-Unterfensters
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Signal");
//---- Initialisierung abgeschlossen
return(0);
}
//+------------------------------------------------------------------+
//| Gleitende Durchschnitte Konvergenz/Divergenz |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- letzte gezählte Balken wird neu gezählt
if(gezählte_Balken>0) gezählte_Balken--;
limit=Balken-gezählt_Balken;
//---- macd im 1. Puffer gezählt
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- Signalleitung im 2-ten Puffer gezählt
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- erledigt
return(0);
}
//+--------------------------------------------
Direkt vor dem letzten Return in Ihrem Code (so stellen Sie sicher, dass er erst ausgeführt wird, wenn der Rest der Verarbeitung abgeschlossen ist)
Danke Mladen, aber wo?
Ich hatte die Meldungen :
Red -If_function nicht definiert
Red-Alert_Semikolon erwartet
------------------------------------------------------------------------------------------------------------------
#Eigenschaft indicator_separate_window
#Eigenschaft indicator_buffers 2
#Eigenschaft indicator_color1 Silber
#Eigenschaft indicator_color2 Rot
#eigenschaft indicator_width1 2
//---- Indikator-Parameter
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- Indikatorpuffer
double MacdBuffer[];
double SignalPuffer[];
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//---- Zeichnungseinstellungen
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Digits+1);
//---- Indikatorpuffer-Zuordnung
SetIndexPuffer(0,MacdBuffer);
SetIndexPuffer(1,SignalPuffer);
//---- Name für das Datenfenster und die Bezeichnung des Indikator-Unterfensters
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Signal");
//---- Initialisierung abgeschlossen
return(0);
}
//+------------------------------------------------------------------+
//| Gleitende Durchschnitte Konvergenz/Divergenz |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- letzte gezählte Balken wird neu gezählt
if(gezählte_Balken>0) gezählte_Balken--;
limit=Balken-gezählt_Balken;
//---- macd im 1. Puffer gezählt
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- Signalleitung im 2-ten Puffer gezählt
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- erledigt
return(0);
}
//+--------------------------------------------Bitte beheben Sie den Fehler der Nullteilung, wenn Sie den Zeitrahmen als "0" verwenden
pivot_crazy.mq4Könnte jemand bitte den Fehler bei der Nullteilung beheben, wenn der Zeitrahmen als "0" verwendet wird?
Danke!
Probieren Sie es aus. Es ist jetzt korrigiert
pivot_crazy.mq4Könnte bitte jemand den Fehler bei der Nullteilung beheben, wenn der Zeitrahmen als "0" verwendet wird? Danke.
Vielen Dank mladen funktioniert wie ein Charme
Probieren Sie es aus. Es ist jetzt korrigiert
thank u mladen works like a charm
Ich brauche Hilfe mit diesem ea seine hat martingale Funktion, aber funktioniert nicht propely zum Beispiel, wenn eine Position seine geschlossen in einem Verlust martingale Funktion sollte multiplizieren die Lose der letzten Position geschlossen in einem Verlust, aber es ist ein Fehler in den Code whitch machen die martingale zu arbeiten propely hier ist die eauniversalmacrossea.mq4
Diese Art und Weise der Eröffnung einer neuen Bestellung nach einem Verlust ist kein Martingal + Martingal arbeitet mit offenen Positionen
Ich brauche Hilfe mit diesem ea seine hat martingale Funktion aber funktioniert nicht propely zum Beispiel, wenn eine Position geschlossen in einem Verlust martingale Funktion sollte multiplizieren die Lose der letzten Position geschlossen in einem Verlust, aber es ist ein Fehler in den Code, der die martingale zu arbeiten propely hier ist die eauniversalmacrossea.mq4
Wie kann ich meine Lotgröße berechnen, wenn ich mit jedem Trade z.B. 5% meines Geldes handeln möchte?
Sonnenschein,
Versuchen Sie es mit dieser Funktion:
{
RefreshRates();
double lots = 0;
double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);
double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);
double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);
int LotDigit = 2;
if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;
//
//
//
//
//
if (LotStep==1) LotDigit=0;
if (LotStep==0.1) LotDigit=1;
if (LotStep==0.01) LotDigit=2;
if (Risk>0)
{
if (AccountBalance()>AccountFreeMargin())
lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
}
//
//
//
//
//
lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);
lots = MathMax(MathMin(lots,MaxLots),MinLots);
return(lots);
}Wie kann ich meine Losgröße berechnen, wenn ich bei jedem Handel z.B. 5% meines Geldes handeln möchte?