[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 321

 
Boneshapper:

Wenn ich das schreibe, schreibe ich nicht Flag=0 vor die Bedingung, denn dann wird er jedes Mal vor einer Transaktion aktualisiert und ist immer 0. Wenn wir keinen Wert angeben, zum Beispiel nur int Flag, wird das Programm ihm 0 zuweisen, richtig?

Ich habe Ihnen einen Code geschrieben, bei dem Flag außerhalb der Startfunktion liegt, nicht innerhalb. Wenn man sie hineinlegt, ist sie nutzlos.
 
Roger:

Seltsam, der Code funktioniert. Vielleicht haben Sie es an die falsche Stelle gesetzt?
Ich habe herausgefunden, dass der Wert von Flag innerhalb der if-Anweisung angegeben wurde, und warum er beim Verlassen der Anweisung verloren ging, indem ich die Variable static int Flag einfügte.
 
Roger:

Ich habe Ihnen einen Code geschrieben, in dem Flag außerhalb der Startfunktion liegt, nicht innerhalb. Wenn man sie hineinlegt, ist sie nutzlos.

Entschuldigung, ich habe eine Antwort geschrieben, aber ich habe Ihre Antwort nicht gesehen.
Ja, ja, Sie haben Recht. Das ist genau mein Fehler. Aber der Ausweg war, Static zu verwenden.

Herzlichen Dank für alles.

 

Gute Nacht!

Können Sie mir bitte sagen, ob es eine Funktion gibt

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
if (OrderSelect(1001, SELECT_BY_TICKET)== true)
int Ticket = OrderTicket ();
Alert ("Ticket =",Ticket);
OrderClose(Ticket,Loot,Ask,50,R);
}

Ich verstehe nicht ganz, wie ich den magischen Parameter in der Funktion ordersend verwenden kann, um nach einer Bestellung mit dieser Nummer zu suchen?

Und wenn Sie die Funktion

bool OrderSelect( int index, int select)
SELECT_BY_TICKET-Option, welchen Index sollten wir einstellen?

 

Um einen Zauberer zu benutzen, muss er zunächst eingerichtet werden, wie der Ihre, und dann bei Ihrem Rundgang auf sein Vorhandensein überprüft werden

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
//...
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
if(OrderMagic()==1001)
{

Alert ("Ticket =",OrderTicket()); 
OrderClose(OrderTicket(),Loot,Ask,50,R); 
}}}
 

Hallo zusammen!!!

Ich habe eine Frage: Ist es möglich, von einem Expert Advisor (MQL4) auf die Handelshistorie zuzugreifen?

Nämlich, dass das vorherige Geschäft unrentabel war und das vorherige profitabel, und so weiter für 10 Geschäfte tief in der Geschichte?

Es ist für MM notwendig, da der Expert Advisor eine Reihe von gewinnbringenden Geschäften nach einem großen Verlustgeschäft hat.

Ich habe eine Idee: Erhöhen Sie nach einem Verlustgeschäft Ihre Position, zum Beispiel in drei oder fünf aufeinanderfolgenden Geschäften, und warten Sie auf das nächste

und warten auf den nächsten Verlusthandel.

 

Nicht alle anfassen, sie schlafen noch, es ist schließlich Samstag.

Der Zugang kann organisiert werden, suchen Sie in der Codebase nach EAs mit dem Steuerwort "martingale" (Martingale).

 
Tatar:

Hallo zusammen!!!

Ich habe eine Frage: Ist es möglich, den Handelsverlauf von einem Expert Advisor (MQL4) abzurufen?

Nämlich, dass das vorherige Geschäft unrentabel war und das vorherige profitabel, und so weiter für 10 Geschäfte tief in der Geschichte?

Es ist für MM notwendig, da der Expert Advisor eine Reihe von gewinnbringenden Geschäften nach einem großen Verlustgeschäft hat.

Ich habe eine Idee: Erhöhen Sie nach einem Verlustgeschäft Ihre Position, zum Beispiel in drei oder fünf aufeinanderfolgenden Geschäften, und warten Sie auf das nächste

ein Verlustgeschäft.


Natürlich ist das möglich. Schauen Sie hier - Sie können die Basis für sich selbst nehmen und sie an Ihre Handelsbedingungen anpassen.

Hier ein Beispiel für die Organisation von Positionen nach den Ergebnissen des letzten geschlossenen Auftrags (der jüngste in der Auftragshistorie - so ist er in meinem System organisiert)

//---Поиск последнего отработавшего ордера для открытия очередной позиции ---
   
   for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
   {   
      if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
      {
         Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
         continue;
      }
   
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }
      
        
   //-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------
if(time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
  {
    time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную
         
         
     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
         
        // Print ("lastProfit = ", NormalizeDouble(lastProfit, 1));
         
       
         
         // Анализ только что закрывшегося ордера
      
         if (lastProfit >= 0.0)
         {.... Здесь действия, при положительном профите ордера...
 .....
......
......
 
 
artmedia70:

double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

Berechnung des gleitenden Durchschnitts.
Parameter:
Symbol - Symbolname des Symbols, auf dessen Daten der Indikator berechnet wird. NULL bedeutet aktuelles Symbol.
Zeitrahmen - Zeitraum. Kann eine der Perioden des Diagramms sein. 0 bedeutet die Periode des aktuellen Diagramms.
Zeitraum - Zeitraum der Mittelwertbildung für die Berechnung des gleitenden Durchschnitts.
ma_shift - Indikatorverschiebung relativ zum Kurschart.
ma_method - Methode der Mittelwertbildung. Kann ein beliebiger Wert aus den Methoden des gleitenden Durchschnitts sein.
angewandter_Preis - Verwendeter Preis. Kann eine der Preiskonstanten sein.
Schicht - Index des aus dem Indikatorpuffer erhaltenen Wertes (Verschiebung relativ zum aktuellen Takt um die angegebene Anzahl von Perioden zurück).


Wie Sie sehen, ist ma_shift eine ganze Zahl (Anzahl der Takte, um die die Zeile МАшки nach rechts oder links verschoben wird). Und +/-0,21% ist das Doppelte, also wird es nicht funktionieren.

Verstehe ich, was Sie wollen?

Sie verstehen alles richtig. Es ist nur Rumus (Forex Club) hat eine solche Möglichkeit und dieser "Umschlag" ist die Basis von TS "Intraday Conservative Scalping". Ich wollte dasselbe mit MT4 machen. Aber so wie du es erklärt hast, ist es nicht so :)

 

Rimlyanin:

Sie verstehen alles richtig. Es ist nur so, dass Rumus (Forex Club) eine solche Möglichkeit hat und dieser "Umschlag" ist die Basis des TS "Conservative Intraday Scalping". Ich wollte dasselbe mit MT4 machen. Aber wie du erklärt hast, ist es kein Schicksal :)

Sie werden missverstanden.

Wenn Sie einen Umschlag benötigen, wird der MA nach oben und unten verschoben.

Die MA ist eine Verschiebung nach links, nach rechts (wie in Alligator).

Grund der Beschwerde: