Benötige Hilfe bei der Kodierung - Seite 8

 

Jo

Etwa so:

if (MACD[0]>MACD[1]) Alert("Message to use for alert"):
Jovager:
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.

Jo
 
mladen:
Jo

Etwa so:

if (MACD[0]>MACD[1]) Alert("Message to use for alert"):

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)

Jovager:
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!

Dateien:
 

Probieren Sie es aus. Es ist jetzt korrigiert

privateer:
pivot_crazy.mq4Könnte bitte jemand den Fehler bei der Nullteilung beheben, wenn der Zeitrahmen als "0" verwendet wird? Danke.
Dateien:
 

Vielen Dank mladen funktioniert wie ein Charme

mladen:
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

Dateien:
 

Diese Art und Weise der Eröffnung einer neuen Bestellung nach einem Verlust ist kein Martingal + Martingal arbeitet mit offenen Positionen

blondutrader:
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:

double getLots(string symbol, double Risk, double stopLossDistance)

{

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);

}
sunshineh:
Wie kann ich meine Losgröße berechnen, wenn ich bei jedem Handel z.B. 5% meines Geldes handeln möchte?
Grund der Beschwerde: