[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 138

 
supernyb:

aber was die Ausgabe betrifft, so verstehe ich, dass der Drucker nur 4 oder weniger Ziffern druckt.

then if Drucken (DoubleToStr(Startpreis,5)); // Startpreis drucken

gibt es 5.

Aber wenn Sie eine Balkenzeit hinzufügen

Diese Zeile fügt nicht die Taktzeit hinzu?



string name="Pr1_";
string cur_name=name+Time[0];
 
supernyb:


wenn es so ist.

es funktioniert nicht, es wird '=' verantwortlich gemacht - inkompatible Typen C:\fortest\experts\sve.mq4 (34, 14)

Wie schreibe ich es richtig?

Danke für die Antwort, ich arbeite schon seit einer Woche daran)


Versuchen Sie es so:

 extern int MA_Period = 50;                   //периуд Ма
extern int MA_Method =MODE_SMA;               //Метод усреднения скользящего среднего. Может быть любым из значений методов скользящего среднего (Moving Average):
                              //*MODE_SMA 
                              
 extern int Maximum_History = 0;              //Ограничение истории для расчетов, если 0 то расчет всей истории
 
   
    
                                               //начало кода советника
int start()
{      
    double MA4;                                // Значение МА на 4 баре     
    double Startprice;
  
   MA4=iMA(NULL,0,MA_Period,0,MA_Method,PRICE_CLOSE,4); 
 
   
 if  (Low[4]< MA4 && MA4 < High[4])            //условия если 4-я свеча лежит в скользящей  
     {      
   Startprice=Close[0];
     }
       
   Print (DoubleToStr(Startprice,5));          // распечатаем Startprice
     
      
   datetime TmR1=Time[0];                      // запоминаем время текущего бара? 
   
       ObjectCreate("Rep1"+TmR1,OBJ_ARROW, 0, TmR1, Startprice); // создаем обьект 
       ObjectSet("Rep1", OBJPROP_COLOR, White); // устанавливаем обьект на график
       ObjectSet("Rep1", OBJPROP_ARROWCODE,71); 
      
     return(0); 
 }    
 
supernyb:

aber was die Ausgabe betrifft, so verstehe ich, dass der Drucker nur 4 oder weniger Ziffern druckt.

then if Drucken (DoubleToStr(Startpreis,5)); // Startpreis drucken

gibt es 5.

Aber wenn Sie eine Balkenzeit hinzufügen

Diese Zeile fügt nicht die Taktzeit hinzu?


 
Roger:
Zeigen Sie, wie Sie bay_min bekommen haben.


 if (StochM < St_min && StochS < St_min) 
   bay_min = true;
 
r772ra:
if (bay_min == true)   datetime T=Time[0] //сработал сигнал на покупку запоминаем время  бара

if(iBarShift(NULL,0,T)==2) //по времени, сигнал был на 2 баре
   {   
  if (Open[1]<Close[1] && Open[2]<Close[2] )   //и эти бары бычьи 
     { 
    // что-то делаем
     }
   }
   
// я думаю, как-то так.

Danke, die Logik ist klar, aber es wurde kein Handel mehr eröffnet.
проблема в этой строчке
if(iBarShift(NULL,0,T)==2) //по времени, сигнал был на 2 баре
 
Bitte beraten Sie mich. Mein ZigZag-Indikator ist überzeichnet. Es zeichnet ein bestimmtes Objekt in das Diagramm. Wenn sich der Preis ändert und es notwendig ist, das Objekt zu löschen, wird das Objekt gelöscht, aber der Wert des Puffers im Diagramm bleibt erhalten. Wie kann man den alten Wert auch löschen, nicht nur im Diagramm? Wenn Sie Code oder zeigen, wo es in der Zickzacklinie implementiert ist?
 
Dimka-novitsek:
Wie bringe ich dem Computer bei, diese rein geschäftliche Aufgabe zu erfüllen, indem ich ihn bremse? Andernfalls reagiert der Hebel des Geschwindigkeitsmessgeräts nur, wenn er es will! Die Verzögerung beträgt oft 3-8 Sekunden. All die bösen Frauen zu erwähnen!
Einen schönen Tag noch!
 
Dimka-novitsek:
Wie bringe ich dem Computer bei, diese rein geschäftliche Aufgabe zu erfüllen, indem ich ihn bremse? Andernfalls reagiert der Hebel des Geschwindigkeitsmessgeräts nur, wenn er es will! Die Verzögerung beträgt oft 3-8 Sekunden. All die bösen Frauen zu erwähnen!


Das Beste aus der Situation machen
 



Strategie-Tester-Bericht

subot11
(Gebäude 438)

SymbolEURUSD (Euro gegenüber US Dollar)
Zeitraum1 Stunde (H1) 2005.01.24 00:00 - 2012.09.26 23:00 (2005.01.24 - 2012.09.27)
ModellAlle Ticks (genaueste Methode auf der Grundlage aller kleinsten verfügbaren Zeitrahmen)
ParameterParameter=" EA"; lot=1; lot2=1; Magic_Number=68705; yroven=120; pr=50; sp=16; MA_Period=50; Maximum_History=0;

Bars in der Geschichte48438Modellierte Zecken62876826Qualität der Simulation90.00%
Diagrammabweichungsfehler0




Ersteinlage10000.00



Reingewinn7635.00Gesamtgewinn41380.00Totalverlust-33745.00
Rentabilität1.23Erwartete Auszahlung16.71

Absolute Absenkung2271.00Maximale Absenkung3769.00 (32.78%)Relative Absenkung32.78% (3769.00)

Handel insgesamt457Short-Positionen (% Gewinn)0 (0.00%)Long-Positionen (% Gewinn)457 (24.29%)

Gewinnbringende Geschäfte (% von allen)111 (24.29%)Verlustgeschäfte (% von allen)346 (75.71%)
Größteertragreicher Handel600.00Verlustgeschäft-150.00
Durchschnittprofitables Geschäft372.79Verlustgeschäft-97.53
Maximale Anzahlkontinuierliche Gewinne (Gewinn)5 (2020.00)Kontinuierliche Verluste (Verlust)20 (-2114.00)
MaximumKontinuierlicher Gewinn (Anzahl der Siege)2098.00 (4)Kontinuierlicher Verlust (Anzahl der Verluste)-2114.00 (20)
Durchschnittlaufende Gewinne2kontinuierlicher Verlust5




Ich habe es geschafft, meinen eigenen EA zu erstellen. Ich habe es mit einem festen Spread von 19 durchgeführt. Seit 2005. Immer Stop-Loss. Nehmen Sie immer. Sie verwendet keine Mittelwertbildung und keinen Martin. Positionen werden innerhalb des Tages geschlossen, d.h. nicht auf den nächsten Tag übertragen.

Mein Programmierer ist lausig, um es milde auszudrücken.

 
artmedia70:

Ich war für ein paar Tage weg... Ich frage mich - haben die Assistenten, die über das Diagramm geworfen werden, die gleichen Parameter wie die Assistenten, die in den Berechnungen verwendet werden? Vielleicht liegt genau hier das Problem?

Natürlich haben sie dieselben Parameter. Hier habe ich im Testmodus die Eigenschaften einer bestimmten MA geöffnet.

MA-Parameter

artmedia70:

(Ich hatte noch keine Zeit, mich mit dem Code zu befassen und ihn zu zerlegen).

Es ist alles sehr einfach geschrieben, so dass jeder es sofort verstehen kann :)

artmedia70:

Ich würde z.B. eine Funktion erstellen:

//-----------------------------------------------------------------------------+
double ma(int MAperiod, int MAmethod, int MAshift) {Rückgabe (iMA(Symbol(), Period(), MAperiod, 0, MAmethod, PRICE_OPEN,MAshift));}
//-----------------------------------------------------------------------------+
und rief es auf, um Parameter zu erhalten


Daran habe ich ursprünglich gedacht, als ich den gesamten Expert Advisor geschrieben habe, nicht diesen hier. ABER. iMA ist bereits eine Funktion. Beim Aufruf der iMA-Funktion können Sie beliebige Parameter eingeben, einige mit global deklarierten Variablen, andere standardmäßig, zum Beispiel. Der Punkt ist, dass es keinen Sinn macht, eine Funktion aus einer Funktion heraus aufzurufen, wenn es keinen Sinn macht.
Grund der Beschwerde: