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

 
Reshetov:

Das ist unmöglich. Nur wenn man mit OrderSelect() eine Schleife nach der anderen durchläuft.

Können Sie mir bitte sagen, wie ich das Gesamtvolumen aller Aufträge (Lots) berechnen kann, indem ich jeden Auftrag in einer Schleife mit OrderSelect() durchgehe?
 
Elektronik:
Bitte sagen Sie mir, wie ich das Gesamtvolumen aller Aufträge (Lots) berechnen kann, indem ich die OrderSelect()-Schleife benutze, die jeden Auftrag Stück für Stück durchgeht).
Starten Sie eine Variable mit dem Gesamtvolumen in Losen und initialisieren Sie sie mit 0
  1. Die Aufträge in einer Schleife durchlaufen
  2. Nach jeder OrderSelect() erhöhen Sie den Variablenwert um den Wert OrderLots().

Nach Abschluss der Schleife enthält die Variable das Gesamtvolumen aller gesuchten Aufträge

 
Elektronik:
Bitte sagen Sie mir, wie ich das Gesamtvolumen aller Aufträge (Lots) berechnen kann, indem ich jeden Auftrag einzeln mit OrderSelect() durchgehe.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает сумму лотов открытых позиций                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - торговая операция          ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
  double l=0;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              l+=OrderLots();
            }
          }
        }
      }
    }
  }
  return(l);
}
 


danke pako:

tat dies:)

int start()
{
int i=0;
double lots=0;
int kollots=0;
int nets=0;
int netp=0;
for(i=0; i<OrdersTotal(); i++)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;kollots=kollots+1;if(OrderStopLoss()<=0) nets=nets+1; if(OrderTakeProfit()<=0) netp=netp+1;
if((OrderType()==OP_BUY)){lots=lots+OrderLots();}
if((OrderType()==OP_SELL)){lots=lots-OrderLots();}
}
Comment("Общий объем: "+ DoubleToStr(lots,2));
}

RICHTIG?

 
Elektronik:



machen Sie es so

//+------------------------------------------------------------------+
//|                                                     lots_kol.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  GetAmountLotFromOpenPos(); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
  double l=0;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              l+=OrderLots();
            }
          }
        }
      }
    }
  }
  Comment("Количество лотoв                ",l);
  return(l);
}

так сделай

 

Guten Tag, meine Herren.

Ich bin ein Anfänger und habe eine Frage: Wie optimiere ich meinen Roboter richtig?

Ich weiß, welche Schaltflächen und Kontrollkästchen ich drücken muss, um einen Strategietester zu starten.

Ich frage mich, wie man herausfindet, für welchen Zeitraum man ihn optimieren sollte und wie man herausfindet, wie lange der EA "gut" funktionieren wird?

Wie können wir sie berechnen? Es ist nicht nur die Methode der Einsicht, die funktionieren kann...

 
impus:

Guten Tag, meine Herren.

Ich bin ein Anfänger und habe eine Frage: Wie optimiere ich meinen Roboter richtig?

Ich weiß, welche Schaltflächen und Kontrollkästchen ich drücken muss, um einen Strategietester zu starten.

Ich frage mich, wie man herausfindet, für welchen Zeitraum man ihn optimieren sollte und wie man herausfindet, wie lange der EA "gut" funktionieren wird?

Wie können wir sie berechnen? Es ist nicht nur die Methode der Einsicht, die funktionieren kann...

Suchen Sie in Ihrer lokalen Suche nach "Forward Tests" oder "OOS". Darüber wurde bereits mehrfach diskutiert.
 
impus:

Guten Tag, meine Herren.

Ich bin ein Anfänger und habe eine Frage: Wie optimiere ich meinen Roboter richtig?

Ich weiß, welche Schaltflächen und Kontrollkästchen gedrückt werden müssen, um einen Strategietester zu starten.

Ich frage mich, wie man herausfindet, für welchen Zeitraum man ihn optimieren sollte und wie man herausfindet, wie lange der EA "gut" funktionieren wird?

Wie können wir sie berechnen? Es ist nicht nur die Methode der Einsicht, die funktionieren kann...

Wenn Sie nicht wissen, wie man einen EA optimiert, sollten Sie die Optimierung nicht selbst durchführen, sondern Ihren TS aussortieren und herausfinden, welche Parameter optimiert werden müssen.
 
Reshetov:
Suchen Sie in Ihrer lokalen Suche nach "Forward Tests" oder "OOS". Darüber wurde bereits mehrfach diskutiert.
Danke, ich werde es mir ansehen.
 
impus:

Guten Tag, meine Herren.

Ich bin ein Anfänger und habe eine Frage: Wie optimiere ich meinen Roboter richtig?

Ich weiß, welche Schaltflächen und Kontrollkästchen gedrückt werden müssen, um den Strategietester zu starten.

Ich frage mich, wie man herausfindet, für welchen Zeitraum man ihn optimieren sollte und wie man herausfindet, wie lange der EA "gut" funktionieren wird?

Wie können wir sie berechnen? Es ist nicht nur die Methode der Einsicht, die funktionieren kann...

Siehe insbesondere die Referenzen (aus meinem (siebten auf der Seite) Beitrag) hier: "Robert Pardo "Entwicklung, Test und Optimierung von Handelssystemen für den Aktienhändler".