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

 
TarasBY:

Kann mir jemand sagen, was das Problem ist?


Solange wir den Indikator selbst nicht haben, wird uns das niemand sagen.
 
Vinin:


Das ist möglich. Natürlich nur, wenn die Maklerfirma dies unterstützt.

Denken Sie daran, dass Sie im Tester nur Positionen für das aktuelle Instrument eröffnen können und dass es bei anderen Instrumenten einige Einschränkungen gibt


Gilt diese Reihe von Beschränkungen auch für den Online-Handel? Wenn nicht, ist das traurig. Mit dem Code lässt sich nichts öffnen:

int magic = 428;//магический номер эксперта
extern double volume = 0.1;//объем выставляемого ордера
extern int slippage = 3;//проскальзывание
int OPB;//метка выставляемого ордера на покупку
int OPS;//метка выставляемого ордера на продажу
int Profit=1;//уровень профита открытых ордеров
string comB = "Выставили ордер Buy";//комментарий ордера
string comS = "Выставили ордер Sell";//комментарий ордера
double StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCAD
double StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSD

double SARCAD;//текущее положение индикатора по USDCAD
double SARСCAD;//положение индикатора бар назад по USDCAD
double SARAUD;//текущее положение индикатора по AUDUSD
double SARСAUD;//положение индикатора бар назад по AUDUSD


int start()
  {
  
//______________________________определение значений переменных_______________________ 


      StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0); 
      StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);
      
      SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
      SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
      SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
      SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
      
      double bidCAD=MarketInfo("USDCAD",MODE_BID);
      double askCAD=MarketInfo("USDCAD",MODE_ASK);
      double bidAUD=MarketInfo("AUDUSD",MODE_BID);
      double askAUD=MarketInfo("AUDUSD",MODE_ASK);


........................


//______________выставление ордеров______________________________________________________________________
    
  
    if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
     
     {  //_______Buy_______ 

          if(!IsTradeAllowed())
               {
                  Alert("занят торговый поток, повторим попытку бай...");
                  return(-1);
               }
          OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордер
            
            if(OPB == -1)
              {
                 Alert("GBPUSD"," ошибка: бай", GetLastError());
                 return(-1);
              }
         
            if(OPB > 1)
            Alert ("GBPUSD","Выставили ордер на покупку!");

     }
      else
     {//_______Sell_______
  
         if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
     
         {
          
           if(!IsTradeAllowed())
                {
                   Alert("занят торговый поток, повторим попытку селл...");
                   return(-1);
                }
        
           OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордер


             if(OPS == -1)
               {
                  Alert("GBPUSD"," ошибка: селл", GetLastError());
                  return(-1);
               }
         
             if(OPS > 1)
             Alert ("GBPUSD","Выставили ордер на продажу!");

         }
     }    
   return(0);//выход
  }
 
mInvIn:

Hallo zusammen.

Können Sie mir bitte sagen: Gibt es nach dem Testen der Historie eine Möglichkeit, den Kommentar oder die magische Zahl jedes getätigten Handels zu erhalten, oder eine andere Möglichkeit, die Geschäfte zu identifizieren? Lassen Sie mich versuchen, die Bedeutung zu erklären. Angenommen, ich habe ein paar Muster programmiert und den Expert Advisor auf die Historie angewendet, und wie so oft schlägt er fehl. Es wäre interessant zu sehen, welche der Muster unter welchen Marktbedingungen immer häufiger verlieren und welche (wenn überhaupt) zumindest einen gewissen Gewinn aufweisen.

Vielen Dank im Voraus für die Antworten.

Machen Sie es einfach. Legen Sie die Musternummer als externen Parameter fest. Der Expert Advisor sollte Positionen nur nach diesem Muster eröffnen. Und wenn Sie z. B. Null angeben, öffnet es sich nach einem beliebigen Muster. Sie führen die Optimierung nach allen Mustern durch. Sie erhalten einen Überblick und eine Aufschlüsselung der Muster.
 
Es wird eine "New Order"-Funktion wie "New Bar" benötigt. Die Funktion sollte den Wert TRUE nur für einen Tick nach dem Zeitpunkt der Auftragseröffnung haben. D.h. in dem Moment, in dem sich die Anzahl der offenen Aufträge nach oben verändert. Bitte helfen Sie mir
 
Techno:
Gibt es eine Möglichkeit, historische Aufträge außer Kraft zu setzen?
Nein, nur Markt- und schwebende Aufträge.
 
IgorM:


es gibt ein solches Problem - ich hatte dieses Problem auch, wenn der Expert Advisor viele Trades pro Jahr macht - vielleicht werden zu viele Daten für die Ausgabe des Endergebnisses gespeichert oder vielleicht fressen die Indikatorpuffer den Speicher

Ich habe gesehen - ich weiß es nicht, seien Sie nachsichtig mit mir - für ein allgemeines Bild, ist der Test für 10 Jahre, und es ist besser, für ein Jahr zu optimieren und dann eine Auswahl der besten Parameter zu machen

Vielen Dank, Igor! Intuitiv tue ich das. Ich dachte, es könnte möglich sein, auch über einen längeren Zeitraum die Geschwindigkeit nicht zu verlieren?
 

Gurus bitte beraten, ich habe schon mein Gehirn gequält, ich denke, es sollte einfach sein, ich habe es auf beide Arten versucht ... Ich kann nicht...

Das ist der Kern des Problems:

Ich schreibe einen Indikator, fängt es Punkte in den Puffern, insgesamt sollte es 4, 2 montiert normalerweise, die Werte, wie sie von Bars sein sollte, entweder Null oder, Preis, hier ist alles in Ordnung, aber wir brauchen 2 weitere Puffer, in denen die Werte auf diese Weise setzen: wenn ein Nicht-Null-Wert für Puffer 0 gefunden wird, dann prüfen, ob die vorherige Nicht-Null-Wert in Puffer 0, und wenn es weniger ist, dann der aktuelle Wert wird in Puffer 2 geschrieben. Ich möchte, dass es on the fly berechnet werden, nicht durch die Suche und Schleifen, es ist mein erster Indikator, ich habe Expert Advisors und Skripte geschrieben, aber ich verlor meinen Weg mit Indikator und seine Puffer...

...................

Counted_bars=IndicatorCounted(); // Anzahl der berechneten Balken

i=Bars-Counted_bars-1; // Index des ersten nicht gezählten Balkens

while(i>1) // Schleife über nicht gezählte Takte

{

if (..............) // hier funktioniert alles

{

Buf_0[i]=High[i];

{ hier wollen wir Buf_2[i] berechnen }

}

if (..............) //auch hier funktioniert alles

{

Buf_1[i]=Low[i];

(hier wollen wir aber Buf_3[i] berechnen)

}

i--;

//Berechnung des Index für den nächsten Balken

}

//--------------------------------------------------------------------

return; // Beenden der Sonderfunktion start()

}

//--------------------------------------------------------------------

 
Was passiert häufiger - kaufen oder verkaufen? Globale Bedeutung.
 
ChachaGames:

Gurus bitte beraten, ich habe schon mein Gehirn gequält, ich denke, es sollte einfach sein, ich habe es auf beide Arten versucht ... Ich kann nicht...

Der Kern des Problems:

Ich schreibe einen Indikator, fängt es Punkte in den Puffern, insgesamt sollte es 4, 2 montiert normalerweise, die Werte, wie sie von Bars sein sollte, entweder Null oder, Preis, hier ist alles in Ordnung, aber wir brauchen 2 weitere Puffer, in denen die Werte auf diese Weise setzen: wenn ein Nicht-Null-Wert für Puffer 0 gefunden wird, dann prüfen, ob die vorherige Nicht-Null-Wert in Puffer 0, und wenn es weniger ist, dann der aktuelle Wert wird in Puffer 2 geschrieben. Ich möchte, dass es on the fly berechnet werden, nicht durch die Suche und Schleifen, es ist mein erster Indikator, ich habe Expert Advisors und Skripte geschrieben, aber ich verlor meinen Weg mit Indikator und seine Puffer...

...................

Counted_bars=IndicatorCounted(); // Anzahl der berechneten Balken

i=Bars-Counted_bars-1; // Index des ersten nicht gezählten Balkens

while(i>1) // Schleife über nicht gezählte Takte

{

if (..............) // hier funktioniert alles

{

Buf_0[i]=High[i];

{ hier wollen wir Buf_2[i] berechnen }

}

if (..............) //auch hier funktioniert alles

{

Buf_1[i]=Low[i];

(hier wollen wir aber Buf_3[i] berechnen)

}

i--;

//Berechnung des Index für den nächsten Balken

}

//--------------------------------------------------------------------

return; // Beenden der Sonderfunktion start()

}

//--------------------------------------------------------------------

Grob gesagt, wie finde ich den Index des letzten Nicht-Null-Wertes im Puffer heraus?
 
_SS_:
Was passiert häufiger - kaufen oder verkaufen? Globale Bedeutung.
Genau in der Hälfte für jeden Verkauf gibt es einen anderen Käufer :)