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

 
Vinin >> :

Sie wird angezeigt, nur nicht auf dem Bildschirm. Tun Sie dies in einem separaten Fenster.

>> "in einem separaten Fenster" - wie?

 
splxgf >> :

Dies ist ein Programmierforum, kein Elliotchiska-Forum... Vielleicht sollten Sie auf http://elliottwave.ru/ gehen.

In diesem Forum werden Handelsstrategien und der Handel mit Elliott-Wellen diskutiert.

ist auch eine Strategie, nicht wahr?

 
dmmikl86 писал(а) >>

"in einem separaten Fenster" - wie?

#property indicator_separate_window
 
dmmikl86 >> :

>> "in einem separaten Fenster" - wie?

Man kann nicht ein Pferd vor denselben Karren spannen

Ein Pferd und eine zitternde Hirschkuh. (с)

Ihr Indikator fällt unweigerlich auseinander, auch wenn er in einem separaten Fenster angezeigt wird. Es ist sehr umständlich, ohne besondere Tricks 1,5 für GPPUSD und 145,0 für GBPJPY auf demselben Chart anzuzeigen.

 

Guten Abend, ich versuche, meinen eigenen EA zu erstellen... Ich habe es ähnlich wie ein anderer EA für MA crossing und back crossing...

Aber das mit seinen eigenen Parametern ... Er öffnet Positionen nur in eine Richtung und schließt sie nicht einmal...

Wie füge ich hier eine Funktion ein, die sich schließt, wenn eine Linie zurückgeschlagen wird?

Alles in allem, maestra help!:-(

....

Wenn die blaue Linie nach oben gekreuzt wird, wird gekauft, wenn sie nach unten gekreuzt wird, wird geschlossen.

Beim Überschreiten der roten Linie nach oben verkaufen und beim Überschreiten nach unten schließen.

Wie Sie auf dem Bild sehen können, funktioniert dieses System nicht...

Helfen Sie bitte mit dem Code ein wenig...bitte!


extern double Lots               = 0.1;
double Points;
int init ()
  {
   Points = MarketInfo (Symbol(), MODE_POINT);
   return(0);
  }
int CalculateCurrentOrders(string symbol)
  {
   int buys=0, sells=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()== MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
   if( buys>0) return( buys);
   else       return(- sells);
  }
double LotsOptimized()
  {
   double lot= Lots;
   int    orders= HistoryTotal();  
   int    losses=0;                 
   lot=NormalizeDouble(AccountFreeMargin()*0.02/1000.0,1);
   if(3>0)
     {
      for(int i= orders-1; i>=0; i--)
        {
         if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if( losses>1) lot=NormalizeDouble( lot- lot* losses/3,1);
     }
   if( lot<0.1) lot=0.1;
   return( lot);
  }
void CheckForOpen()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
int    res;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м баре
     if ( apglav2< apsig2 && apglav1> apsig1)
     {
      res=OrderSend(Symbol(),OP_BUY, LotsOptimized(),Ask,3,"", MAGICMA,0,Blue);
      return;
     }
     if ( apglav2> apsig2 && apglav1< apsig1)
     {
      res=OrderSend(Symbol(),OP_SELL, LotsOptimized(),Bid,3,"", MAGICMA,0,Red);
      return;
     }
  }
  void CheckForClose()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м бар
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!= MAGICMA || OrderSymbol()!=Symbol()) continue;
      if(OrderType()==OP_BUY)
        {
        if( apglav2> apsig2 && apglav1< apsig1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
        break;
        }
   if(OrderType()==OP_SELL)
        {
        if( apglav2< apsig2 && apglav1> apsig1) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
        break;
        }
}
}
void start()
  {
   if(Bars<100 || IsTradeAllowed()==false) return;
   if( CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
  }
 

Ellioter sind immer in den Foren, wo sie über den Handel sprechen. Erstellen Sie ein Thema und stellen Sie eine Frage. Und Sie können die Frage hier stellen. Vielleicht beantworte ich sie oder jemand anderes.

 
DDFedor >> :

spät... Timer gestartet... >> "Wellenanalyse

Sabluk wird auch diesen Thread verbieten lassen.

 
Ibiss >> :

Beim Überschreiten der blauen Linie nach oben kaufen und beim Überschreiten nach unten schließen.

Beim Überschreiten der roten Linie nach oben verkaufen und beim Überschreiten nach unten schließen.

Wie Sie auf dem Bild sehen können, funktioniert dieses System nicht.

Helfen Sie ein wenig mit dem Code...bitte!


Es scheint alles in Ordnung zu sein. (nur ein flüchtiger Blick).

Nur. Dieser Ausdruck

if(Volumen[0]>1) return;

sollten Sie es besser entfernen. "Dies" funktioniert nur im Testgerät korrekt. Und online wird es kaum funktionieren!

Besser ist es, den Eröffnungspreis richtig zu gestalten.

 

Liebe Forumsnutzer!

Ich habe einen Indikator geschrieben und es gibt ein Problem, der gleitende Durchschnitt (Buf_2) wird nicht gezeichnet, hier ist der Code:

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

extern int average=14;
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();


//----
//====================================================================
// график тела с объемом
double sum_b=0.0;
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       //----
       if (Close[ i]>Open[ i]) {
         sum_b = sum_b + (Close[ i]-Open[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (Close[ i]<Open[ i]) {
         sum_b = sum_b - (Open[ i]-Close[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (NormalizeDouble(Close[ i],Digits)==NormalizeDouble(Open[ i],Digits)) {
         Buf_1[ i] = Buf_1[ i-1];
         }
         
       i--;
       //----
      }
//====================================================================
// average
int n=0;
   while( i>=0) 
      {  
       //----
       while( n<= average){
         Buf_2[ i]= Buf_1[ i- n];
         n++;
         }
       
       i--;
       //----
      }

//----
   return(0);
  }
//+------------------------------------------------------------------+
Helfen Sie mir zu verstehen, was das Problem ist?
 

Urain писал(а) >>

Sabluk wird auch diesen Zweig verbieten lassen.

Ja, cool.

2 Betrieb. Kurz gesagt, um rein auf Wellen zu handeln, muss man ein Gehirn mit der Leistung eines Computers haben. Genau das Gehirn mit solcher Leistung. Mit anderen Worten, es könnte sich um einen Fall des Einmonatscharts handeln (mit all seinen Auswirkungen zumindest auf B1). Nur in einem Monat kann ein Anfänger alle möglichen Szenarien berechnen und dabei die gesamte Historie berücksichtigen, die ebenfalls verfügbar sein sollte, vorzugsweise seit Beginn des Handels mit dem Instrument. Oder, als Alternative, die Antwort auf die Frage - woher wissen Sie, wie die zweite Welle aussieht (Sie haben gefragt)? Jegliche Umkehrung beginnt mit der ERSTEN Welle. Eine Korrektur des ersten ist der zweite. Nehmen Sie M15, darauf sehen Sie im Detail den Beginn der Bewegung, die Korrektur dazu (die erste und zweite Welle - das PATTERN), wenn Sie es hundertmal tun (betrachten Sie die Umkehrung), dann ist die Antwort auf Ihre Frage fertig. Das einzige, was zu berücksichtigen ist, dass der Markt oft zeichnet das Muster ohne jede Fortsetzung, das heißt, wenn Sie ein solches Muster gesehen haben, in der Realität, aber nicht auf die Geschichte, kann es als wahr, nur nach der Entwicklung des Trends in die gleiche Richtung, oft das Muster bricht. Im Allgemeinen muss man eine Menge Bedingungen haben, um auf Wellen zu handeln.

Ich persönlich besitze einen Teil dieser Merkmale nicht.

1. Ich bin nicht sehr klug.

2. Eine Menge Zeit, um ein sehr kompliziertes Thema zu bewältigen.

3. Notierungen vom Beginn des Handelsinstruments an.

Abstraktes Denken.

4) Es ist notwendig, das gesamte Wellenmuster mindestens ein Jahr lang im Kopf zu behalten (dazu braucht man ein Gehirn), und zwar nicht einfach nur, sondern mit Varianten. Es gibt sehr viele Varianten, ebenso wie die Arten der Korrektur. Es ist wie bei der Optimierung von Parametern - wenn Sie einen Parameter und zwei Werte hinzufügen, haben Sie doppelt so viele Varianten, und wenn Sie fünf Parameter und 1000 Werte hinzufügen?

Nun, dafür haben wir nicht genug Verstand. Und nicht genug Zeit. Und nicht genug Zitate.

Und es gibt noch eine Menge anderer Dinge. Es ist viel einfacher, klassische TA zu verwenden. Es funktioniert nicht schlechter als VA, obwohl ich persönlich immer die Wellenanalyse verwende, da ich so viel Zeit damit verbracht habe. Aber die meisten Händler kommen sehr gut ohne BA aus.