[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 236

 

Liebe Kollegen, ich bin etwas verwirrt.

Sie müssen den Indikator verwenden, um eine Linie zwischen zwei Punkten zu ziehen


   SetIndexShift(0, DRAW_SECTION);
   SetIndexBuffer(0, z1);

   z1[1]=1.5;
   z1[2]=EMPTY_VALUE;
   z1[3]=EMPTY_VALUE;
   z1[4]=EMPTY_VALUE;
   z1[5]=EMPTY_VALUE;
   z1[6]=1.4;

So funktioniert es aber nicht, oder?
 
neoclassic >> :

Die Kollegen sind ein wenig verwirrt.

Sie müssen den Indikator verwenden, um eine Linie zwischen zwei Punkten zu ziehen

Und schauen Sie sich die SetIndexShift-Hilfe an. Falsche Funktion. Ihr Name ist SetIndexStyle.

PS: und wenn Sie Linien nach der Formel y=kx+b zeichnen, dann wird der Indikator

ist für jeweils zwei Punkte definiert :-).

 
jartmailru >> :

Und schauen Sie sich die Hilfe zu SetIndexShift an. Falsche Funktion. Ihr Name ist SetIndexStyle.

PS: und wenn Sie Linien nach der Formel y=kx+b zeichnen, wird der Indikator

für jeweils zwei Punkte definiert :-).

So passiert es, mehr als ein Indikator geschrieben, Shifter verwechselt mit Stile :-) kein Fehler, ich entspannt.... danke :-)

 

Jungs, können Sie mir helfen, den Indikator zu ändern, um eine Ellipse zusammen mit der Parabel zu zeichnen, möchte ich die Ergebnisse der EA zu vergleichen. Meines Erachtens ist die Ellipse für den Stoploss besser geeignet als die Parabel. Hat jemand einen solchen Indikator. Auf der Grundlage von Ellipsen? Ich möchte die Ergebnisse mit denen einer Parabel vergleichen.

Dateien:
 
001 писал(а) >>

Jungs, können Sie mir helfen, den Indikator zu ändern, um eine Ellipse zusammen mit der Parabel zu zeichnen, möchte ich die Ergebnisse der EA zu vergleichen. Meines Erachtens ist die Ellipse für den Stoploss besser geeignet als die Parabel. Hat jemand einen solchen Indikator. Auf der Grundlage von Ellipsen? Ich danke Ihnen im Voraus.

Ich habe versucht, diesen Indikator als externen Indikator in meinen Expert Advisor einzubinden. Ich verstehe nicht, was los ist.

Ich habe die folgenden Informationen in meinem Indikator

extern double Step=0.0513;
extern double Maximum=0.46;

In meinem Expert Advisor:

extern double stepstop=0.005;
extern double maximumstepstop=0.05;

double sarstop=iCustom(NULL,0, "ParabolicM",stepstop,maximumstepstop,0,0);

Das Ergebnis ist:

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30: sarstop = 0.8625

Es bedeutet, dass sich der Messwert nicht ändert

 

Hallo!


Ich habe eine Frage zur Logik des Expert Advisors, und da ich keine Programmierkenntnisse habe, wende ich mich an diejenigen, die sich damit auskennen.

Ich habe einen Code (gefunden auf einem westlichen Foren und kann mich leider nicht an den Namen des Autors erinnern), der den Schnittpunkt der Linien des Stochastik-Indikators auf vier Zeitrahmen registrieren soll. Wenn die Hauptlinie in allen Zeitrahmen über der Signallinie liegt, wird der Code zur Eröffnung des Auftrags ausgeführt. Diese Idee ist natürlich großartig, aber ihre Umsetzung verursachte eine Menge Probleme. Nachdem ich die Historie durchlaufen hatte, sah ich, dass manchmal die Bestellung geöffnet wird, wenn das Ereignis nur in einem Zeitrahmen registriert wird. Ich kann nicht verstehen, wo das Problem liegen könnte, da die Grundvoraussetzungen anscheinend gegeben sind.


Ich wäre für jede Hilfe dankbar!



double M1, S1, M2, S2, M3, S3, M4, S4;

string Sig;
string St;
double ticket;

int start()
{
M1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

M2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

St = "READY";

Sig = "NONE";

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
{
Sig="LONG";
}
if(M1<S1, M2<S2 && M3<S3 && M4<S4)
{
Sig="SHORT";
}

if(St=="READY" && Sig=="LONG")
{
ticket=OrderSend(Symbol(),OP_BUY,LotSize,Ask,5,Bid-SL*Point,Bid+TP*Point,LongComment,Magic,0,Blue);
if(ticket>-1)
{
St="LONG ON";
}
}

if(St=="READY" && Sig=="SHORT")
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,5,Ask+SL*Point,Ask-TP*Point,ShortComment,Magic,0,Red);
if(ticket>-1)
{
St="SHORT ON";
}
}

}

 
if-t >> :

Hallo!

Ich habe einen Code (ich habe ihn in einem der westlichen Foren gefunden und kann mich leider nicht mehr an den Namen des Autors erinnern), der angeblich ...... lautet.

..... hat festgestellt, dass manchmal ein Auftrag eröffnet wird, wenn ein Ereignis nur in einem Zeitrahmen registriert wird.

Wir sind für jede Hilfe dankbar!



Vielleicht liegt das Problem an diesem seltsamen Eintrag:

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
Was bedeutet das? -
(M1>S1, M2>S2

Vielleicht sollten Sie statt eines Kommas den Operator "&&" verwenden? (sowohl für Kauf als auch für Verkauf)

 
rid >> :

Vielleicht liegt das Problem an diesem seltsamen Eintrag:

Was bedeutet das? -

Vielleicht sollten Sie statt eines Kommas den Operator "&&" verwenden? (sowohl für Kauf als auch für Verkauf)

Rid, vielen Dank für Ihre Antwort! Dieser Fehler ist mir beim Umordnen von Variablen unterlaufen (mein Kopf ist bereits geschwollen und ich mache primitive Fehler). Die ursprüngliche Variante ist korrekt:

if(M1>S1 && M2>S2 && M3>S3 && M4>S4)

Aber es funktioniert nicht. Ich denke, dass die Variable St vielleicht nicht immer die richtigen Werte erhält? Aber wenn die Bedingung nicht erfüllt ist, sollte der Code eigentlich nicht ausgeführt werden... Im Allgemeinen bin ich ein Programmierer wie eine Ballerina, und ich kann einfach nicht ohne die Hilfe von Fachleuten arbeiten...


 

Übrigens, ich habe versucht, einen Ausdruck einzufügen, aber die Variablen scheinen die richtigen Werte zu erhalten.

 

Ich habe versucht, meinen ersten Indikator zu schreiben, aber er zeichnet nur eine Linie anstelle von zwei.

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();
//----
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       Buf_1[ i]= Close[ i]; 
       Buf_2[ i]= Open[ i];
       i--;
      }
 
//----
   return(0);