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

 
Figar0 >> :

Was ist das überhaupt für ein Design?

Ja, ich habe es schon herausgefunden und den Test gemacht.

>> Es ist klar, dass ich nur den Indikatorwert entfernt habe, woher kommt die Verwirrung?

 
1Rakso писал(а) >>

Ich habe es schon herausgefunden, ich habe es durch den Test laufen lassen.

Es ist klar, dass ich nur den Indikatorwert entfernt habe, woher kommt also die Verwirrung?

Es ist nur nicht klar, was es ist, wie können Sie antworten, wenn Sie verstehen, was Sie fragen?

Wenn Sie nicht wissen, was es ist, verwenden Sie es vielleicht, weil Sie nicht wissen, womit Sie es vergleichen können. Das ist richtig.

 
anat >> :



Können Sie mir bitte sagen, wie ich in diese Konstruktion eine Bedingung if(iSAR(NULL,0,step0,0.1,0)<Close[0]) einfügen kann, die besagt, dass, wenn z.B. Kaufpositionen offen sind, Verkaufspositionen erst dann eröffnet werden, wenn alle Kaufpositionen geschlossen sind. Mit anderen Worten, ein Handelszyklus: Wir kaufen 3 Positionen und warten, bis alle drei geschlossen sind. Positionen werden nur durch Stop Loss oder Take Profit geschlossen. Alle Positionen werden geschlossen, man wartet auf das Signal, erhält ein Signal, kauft oder verkauft (je nach Signal) 3 Positionen, usw. Die "Nützlichen Funktionen von KimIV" sind untersucht worden. Sie können die Funktionen CountOrders(), ExistOrders(), ExistPositions() verwenden. Aber wie kann ich sie praktisch einsetzen? Das Konstrukt if((iSAR(NULL,0,step0,0.1,0)>Close[0])&& ExistPositions(NULL,OP_SELL)==false) funktioniert nicht. Ich verstehe, dass ich eine logische Variable einfügen muss, aber wie mache ich das in der Praxis? Ich verstehe etwas nicht.


Lesen Sie den ganzen Thread. Ich habe die Lösung gefunden - schließen Sie den gesamten Code in geschweifte Klammern ein und schreiben Sie if (OrdersTotal( ) == 0) davor. Grobschlächtig, aber es funktioniert. Ich möchte bool-Variablen verwenden, um eine beliebige Anzahl von Aufträgen zu öffnen, geleitet von einer Bedingung if (OrdersTotal() >=maxOpen) return;
 
anat >> :
Ich habe den ganzen Zweig gelesen. Die Lösung ist wie folgt - schließen Sie den gesamten Code in geschweifte Klammern ein und schreiben Sie davor if (OrdersTotal( ) == 0). Grobschlächtig, aber es funktioniert. Ich möchte boolsche Variablen verwenden, um eine beliebige Anzahl von Aufträgen zu öffnen, basierend auf der Bedingung if (OrdersTotal() >=maxOpen) return;

Wenn Sie Total_sell und Total_buy trennen wollen, versuchen Sie, die Funktion

int CalculateCurrentOrders(string symbol) von SimpleMACD

int CalculateCurrentOrders(int Type)// OP_BUY , OP_SELL
  {
   int buys=0;
//----
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() )
        {
         if(OrderType()== Type)  buys++;
        }
     } return( buys);
  }
 
Bitte sagen Sie mir, welche Funktion die Schlusszeit der aktuellen Kerze liefert?
 
Diver-si >> :

Es handelt sich nicht um Strategien, sondern nur um eine zu prüfende Vermutung. Übrigens, warum macht der EA keine Trades? Ich verstehe nicht, warum.

>> Ich weiß es nicht. Ich habe es auf dem Testgerät ausprobiert und es hat funktioniert. Vielleicht haben Sie einen Fehler bei den Parametern gemacht. Oder Sie haben das Kontrollkästchen, das dem EA den Handel erlaubt, nicht angekreuzt. Und die Zeit eines Major TF wird in Minuten angegeben! d.h. in der TFUP-Variable müssen Sie nicht m5, sondern 5, nicht m30, sondern 30, nicht H1, sondern 60, usw. angeben.

 
gmMarat писал(а) >>
Bitte sagen Sie mir, welche Funktion den Zeitpunkt des aktuellen Kerzenschlusses zurückgibt.

Wann ist die aktuelle Kerze zu Ende? Die aktuelle Kerze ist noch nicht geschlossen, sonst ist sie nicht mehr aktuell, wir können davon ausgehen, dass dieser Zeitpunkt ungefähr Time[0]+Period()*60 ist

 
Figar0 >> :

Wann ist die aktuelle Kerze zu Ende? Die aktuelle Kerze ist noch nicht geschlossen, sonst ist sie nicht mehr aktuell, wir können davon ausgehen, dass dieser Zeitpunkt ungefähr Time[0]+Period()*60 ist

Figar0 danke, das ist, was ich brauchte

 
Wie bestimmt man den Wert eines Pips beim Handel mit einem Lot? Mir wurde geraten, die Formel MarketInfo(Symbol(),MODE_LOTSIZE)*Point zu verwenden, aber das ist absolut falsch! Es gibt 100000$*0.001=100$ für USDJPY zurück, was in Wirklichkeit ein Dollar ist, wie für die meisten Symbole.
 
Цена 1 пункта для стандартного лота:
 
 double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     )      ;
double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  )      ;
double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE )      ;

double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота
Цена 1 пункта для ордера известного размера "ad.OrderSize":

double ad.OrderPoint   = ad.NominalPoint * ad.OrderSize                 ;