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
dasio
Versuchen Sie etwas wie dies:
#property indicator_buffers 2
#property indicator_color1 OrangeRed
#property indicator_color2 Silver
#property indicator_width1 2
extern int RsiPeriod = 50;
extern int RsiPrice = PRICE_CLOSE;
double work[];
double avg[];
//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
int init()
{
SetIndexBuffer(0,work);
SetIndexBuffer(1,avg);
return(0);
}
int start()
{
int i,countedBars = IndicatorCounted();
if (countedBars<0) return(-1);
if (countedBars>0) countedBars--;
int limit = MathMin(Bars-countedBars,Bars-1);
for(i=limit; i>=0; i--)
{
work = iRSI(NULL,0,RsiPeriod,RsiPrice,i);
int y = iBarShift(NULL,PERIOD_D1,Time);
int x = iBarShift(NULL,PERIOD_D1,Time);
if (x!=y)
{
int k = iBarShift(NULL,0,iTime(NULL,PERIOD_D1,y));
double average = work[k];
int c = 1;
for (int j=k-1; j>=i; j--,c++) average += work[j]; average /= c;
for ( j=k ; j>=i; j--) avg[j] = average;
}
}
return(0);
}
Mladen Ich habe es versucht, aber ohne Erfolg.
Im Anhang befindet sich ein Beispiel meines Indikators. Die einzigen Unterschiede sind in den Berechnungen, aber das andere ist das gleiche.
Können Sie Ihre Formel integrieren, damit ich sie auch studieren kann.
Dankeschön
test1.mq4
Hallo zusammen. Ich suche schnelle Hilfe, um eine Codezeile für ein Signal zu schreiben.
Ich bin mit Step_Indy und ein EMA Kreuz für Signal. Was ich tun möchte ist, haben die EA Handel nur eingeben, wenn beide ein Signal innerhalb von 10 Bars von einander geben.
Also sagen, dass der Schritt ein Signal gibt, möchte ich die EA zurück 10 Bars zu sehen, ob es ein MA Kreuz, wenn ja eingeben. (Beachten Sie, dass ich nicht will, dass es nur überprüfen und sehen, wenn die MA Kreuz aktuelle Signal lang ist, ich will es kürzlich wie innerhalb von 10 Bars gewesen sein)
TIA für jede Hilfe, ich glaube nicht, dass ich gesehen habe, dies in der Vergangenheit in jeder EA, die ich angesehen habe, getan.
dasio
Aus dem Code kann ich nicht erkennen, was die Absicht des Codes ist. Wie auch immer, hier ist ein Code, in dem Sie wählen können, ob Sie den wahren Bereich als "Basis"-Wert des Indikators verwenden möchten (es ist der erste Teil Ihres Codes) oder Sie möchten den zweiten Teil Ihres Codes als "Basis"-Wert verwenden
Mladen Ich habe es versucht, aber ohne Erfolg.
Im Anhang finden Sie ein Beispiel für meinen Indikator. Die einzigen Unterschiede sind in den Berechnungen, aber das andere ist das gleiche.
Können Sie Ihre Formel integrieren? damit ich sie auch studieren kann.
Dankeschön
test1.mq4Signal Probleme
Mladen, vielen Dank noch einmal, der Alarm nicht mehr wiederholen, funktioniert gut.....aber ich möchte einen Stop sgnal.....und ich schrieb den folgenden Code, der Kauf und Verkauf Signal funktioniert, aber die Buy Stop und Sell Stop ist nicht funktionieren, siehe den Code unten:
//-----Assigning Alarts----
if(Zeitraum()==240){
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PREIS_SCHLIESSEN,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PREIS_TYPISCH,0);
double b4trCCI=iCCI(NULL,240,14,PREIS_TYPISCH,1);
double nowtrCCI=iCCI(NULL,240,14,PREIS_TYPISCH,0);
// Handelswarnungen
if((adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&nowenCCI>b4enCCI)&&(nowtrCCI>0&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0];
Alert("Kaufen","\n","Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());
}
if((adx_h4>=20)&&(di_m_h4>=20)&&(di_m_h4>di_p_h4)&&(ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&nowenCCI<b4enCCI)&&(nowtrCCI<0&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0];
Alert("Sell","\n", "Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());
}
// Alarme stoppen
if((adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_mainRSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)||(adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_main>ist_signal)&&(RSIP10&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)||(adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI<0&&nowenCCI0&&nowtrCCI>b4trCCI)||(adx_h4>=20)&&(di_p_h4>=20)&&(di_p_h4>di_m_h4)&&(ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&nowenCCI>b4enCCI)&&(nowtrCCI<0&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0];
Alert("Stop Buy","\n", "Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());
}
if((adx_h4>=20)&&(di_m_h4>=20)&&(di_p_h4ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI=20)&&(di_m_h4>=20)&&(di_p_h4<di_m_h4)&&(ist_mainRSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI=20)&&(di_m_h4>=20)&&(di_p_h4<di_m_h4)&&(ist_main<ist_signal)&&(RSIP10&&nowenCCI>b4enCCI)&&(nowtrCCI<0&&nowtrCCI=20)&&(di_m_h4>=20)&&(di_p_h4<di_m_h4)&&(ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0];
Alert(" Stop Sell","\n", "Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());
}
Versuchen Sie Folgendes:
{
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alerts
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
}dasio Aus dem Code kann ich nicht erkennen, was die Absicht des Codes ist. Wie auch immer, hier ist ein Code, in dem du wählen kannst, ob du den wahren Bereich als "Basis"-Wert des Indikators verwenden möchtest (es ist der erste Teil deines Codes) oder du möchtest den zweiten Teil deines Codes als "Basis"-Wert verwenden
Danke, mladen.
Ich weiß, dass es keinen Sinn macht, auf diese Weise zu rechnen. Aber ich versuche, eine Analyse zu programmieren, die ich jeden Tag mache. ^^
Es ist nur 1/3 der Arbeit.
Dankeschön
dasio Aus dem Code kann ich nicht erkennen, was die Absicht des Codes ist. Wie auch immer, hier ist ein Code, in dem Sie wählen können, ob Sie den wahren Bereich als "Basis"-Wert des Indikators verwenden möchten (es ist der erste Teil Ihres Codes) oder Sie möchten den zweiten Teil Ihres Codes als "Basis"-Wert verwenden
Danke, das ist perfekt.
Ist es möglich, das Freitagsfix hinzuzufügen?
Ich danke Ihnen dafür.
Mit freundlichen Grüßen
Volumen
ich möchte das Volumen jedes Balkens abfragen, aber ich habe keine Ahnung, wie ich es angehen soll. Ich bin neu in der mql4-Programmierung, aber ich versuche zu lernen, dass ich dieses einfache Programm versucht habe, aber es kann kompletter Müll sein, bitte lassen Sie es mich wissen, und alle Vorschläge wären willkommen. unten ist der Anfang des Skripts, um das Volumen eines Balkens abzufragen und dann das Ergebnis zu drucken, bitte lassen Sie mich wissen, was ich falsch mache!!!! versuchen zu kompilieren, es gibt einen Fehler, der sagt (Ende der Programmendklammer } erwartet.
//--- Eingabeparameter
extern double TakeProfit = 4;
extern double StopLoss = 20;
extern double Lots = 0.1;
extern double TrailingStop = 30;
extern double volumemore = 600;
extern double volumeless = 150;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int start()
{
if (Volumen=>Volumemore)
{
Print ("Volumen mehr");
{
if (Volumen=<Volumenlos)
{
Print ("Volumen weniger");
if(Balken<20)
{
Print("Balken weniger als 20");
{
//----
//----
return (0);
}
Verwenden Sie Volume, wobei "index" die Nummer des Balkens ist, für den Sie das Volumen sehen möchten. Denken Sie daran, dass im Metatrader 4 das "Volumen" immer das Tick-Volumen ist.
ich möchte das Volumen jedes Balkens abfragen, aber ich habe keine Ahnung, wie ich es angehen soll, ich bin neu in der mql4-Programmierung, aber ich versuche zu lernen, ich habe dieses einfache Programm ausprobiert, aber es kann kompletter Müll sein, bitte lassen Sie es mich wissen, und alle Vorschläge wären willkommen. unten ist der Anfang des Skripts, um das Volumen eines Balkens abzufragen und dann das Ergebnis auszudrucken, bitte lassen Sie mich wissen, wo ich etwas falsch mache!!!! versuchen Sie zu kompilieren, es gibt einen Fehler, der sagt (Ende des Programms Endklammer } erwartet.
//--- Eingabeparameter
extern double TakeProfit = 4;
extern double StopLoss = 20;;
extern double Lots = 0.1;
extern double TrailingStop = 30;
extern double volumemore = 600;
extern double volumeless = 150;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int start()
{
if (Volumen=>Volumemore)
{
Print ("Volumen mehr");
{
if (Volumen=<Volumenlos)
{
Print ("Volumen weniger");
if(Balken<20)
{
Print("Balken weniger als 20");
{
//----
//----
return (0);
}Hallo zusammen. Ich suche schnelle Hilfe, um eine Codezeile für ein Signal zu schreiben.
Ich verwende Step_Indy und ein EMA-Kreuz als Signal. Was ich tun möchte ist, haben die EA Handel nur eingeben, wenn beide ein Signal innerhalb von 10 Bars von einander geben.
Also sagen, dass der Schritt ein Signal gibt, möchte ich die EA zurück 10 Bars zu sehen, ob es ein MA Kreuz, wenn ja eingeben. (Beachten Sie, dass ich nicht will, dass es nur überprüfen und sehen, ob die MA Kreuz aktuelle Signal lang ist, ich will es kürzlich wie innerhalb von 10 Bars gewesen sein)
TIA für jede Hilfe, ich glaube nicht, dass ich gesehen habe, dies in der Vergangenheit in jeder EA, die ich gesehen habe.Nun habe ich versucht, ein paar Dinge, aber so weit nichts hat funktioniert.
Hier ist eine der Möglichkeiten, die ich versucht habe:
extern int lookback = 10;
extern int EMA1 = 21;
extern int EMA2 = 55;
int GetEntrySignal()
{
int trendCurr = iCustom(NULL,StepMaTimeFrame, "StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest );
int trendPrev = iCustom(NULL,StepMaTimeFrame, "StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+1);
double TwentyOneEMA = iMA(NULL,0,EMA1,0,MODE_EMA,PRICE_CLOSE,1);
double FiftyFiveEMA = iMA(NULL,0,EMA2,0,MODE_EMA,PRICE_CLOSE,1);
if(TwentyOneEMA > FiftyFiveEMA)
{
if(trendCurr>0)
{
for(int i=1; i<=Bars-lookback; i++)
{
if (TrendCurr<0)
return(LONG);
sonst return(NONE);
}
}
}
if(TwentyOneEMA < FiftyFiveEMA)
{
wenn (trendCurr<0)
{
for(int i2=1; i2<=Bars-lookback; i2++)
{
if (TrendCurr>0)
return(SHORT);
sonst return(NONE);
}
}
}
return(NONE);
}
Jede Idee ist willkommen, ich habe auch versucht (int i=1; i<=lookback; i++)
...
jayjonbeach,
Sie testen den Wert von trendCurr immer wieder in der Schleife, ohne ihn zu ändern (daher wird immer NONE zurückgegeben)
Versuchen Sie, iCustom() in die Schleife einzufügen und dann diesen Wert zu testen. Etwa so:
{
for(int i=1; i<=lookback; i++)
{
int testValue = iCustom(NULL,StepMaTimeFrame,"StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+i);
if (testValue<0) return(LONG);
}
return(NONE);
}
Ich habe einige Dinge ausprobiert, aber bisher hat nichts funktioniert.
Hier ist eine der Möglichkeiten, wie ich das versucht habe:
extern int lookback = 10;
extern int EMA1 = 21;
extern int EMA2 = 55;
int GetEntrySignal()
{
int trendCurr = iCustom(NULL,StepMaTimeFrame, "StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest);
int trendPrev = iCustom(NULL,StepMaTimeFrame, "StepMA_v7",Length,Kv,StepSize,MA_Mode,Advance,Percentage,UpDownShift,HighLow,ColorMode,5,StepMaBarToTest+1);
double TwentyOneEMA = iMA(NULL,0,EMA1,0,MODE_EMA,PRICE_CLOSE,1);
double FiftyFiveEMA = iMA(NULL,0,EMA2,0,MODE_EMA,PRICE_CLOSE,1);
if(TwentyOneEMA > FiftyFiveEMA)
{
if(trendCurr>0)
{
for(int i=1; i<=Bars-lookback; i++)
{
if (TrendCurr<0)
return(LONG);
sonst return(NONE);
}
}
}
if(TwentyOneEMA < FiftyFiveEMA)
{
wenn (trendCurr<0)
{
for(int i2=1; i2<=Bars-lookback; i2++)
{
if (TrendCurr>0)
return(SHORT);
sonst return(NONE);
}
}
}
return(NONE);
}
Jede Idee ist willkommen