[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 426

 
Reshetov:

Non c'è modo. Solo facendo il looping uno per uno con OrderSelect().

Potete dirmi come calcolare il volume totale di tutti gli ordini (lotti) passando attraverso ogni ordine in un ciclo usando OrderSelect()?
 
Elektronik:
Per favore ditemi come calcolare il volume totale di tutti gli ordini (lotti) usando il ciclo OrderSelect() che passa attraverso ogni ordine pezzo per pezzo).
Avviare una variabile con il volume totale in lotti e inizializzarla a 0
  1. Passare attraverso gli ordini in un ciclo
  2. Dopo ogni OrderSelect(), si aumenta il valore della variabile del valore OrderLots().

Dopo che il ciclo è finito, la variabile conterrà il volume totale di tutti gli ordini cercati

 
Elektronik:
Per favore, ditemi come calcolare il volume totale di tutti gli ordini (lotti) passando attraverso ogni ordine individualmente con OrderSelect().
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
}
 


grazie pako:

ha fatto così:)

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));
}

GIUSTO?

 
Elektronik:



fare in modo che

//+------------------------------------------------------------------+
//|                                                     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);
}

так сделай

 

Buon pomeriggio, signori.

Sono un principiante e ho una domanda: come posso ottimizzare correttamente il mio robot?

So quali pulsanti e caselle di controllo devo premere per eseguire un tester di strategia.

Mi sto chiedendo, come capire per quale periodo ottimizzarlo? Come capire per quanto tempo l'EA funzionerà "bene"?

Come possiamo calcolarlo? Non è solo il metodo dell'intuizione che può funzionare...

 
impus:

Buon pomeriggio, signori.

Sono un principiante e ho una domanda: come posso ottimizzare correttamente il mio robot?

So quali pulsanti e caselle di controllo devono essere premuti per eseguire un tester di strategia.

Mi chiedo, come capire per quale periodo ottimizzarlo? Come capire per quanto tempo l'EA funzionerà "bene"?

Come possiamo calcolarlo? Non è solo il metodo dell'intuizione che può funzionare...

Cercate nella vostra ricerca locale "test in avanti" o "OOS". È stato discusso molte volte.
 
impus:

Buon pomeriggio, signori.

Sono un principiante e ho una domanda: come posso ottimizzare correttamente il mio robot?

So quali pulsanti e caselle di controllo devono essere premuti per eseguire un tester di strategia.

Mi sto chiedendo, come capire per quale periodo ottimizzarlo? Come capire per quanto tempo l'EA funzionerà "bene"?

Come possiamo calcolarlo? Non è solo il metodo dell'intuizione che può funzionare...

Se non capite come ottimizzare un EA, non fate l'ottimizzazione, ma sistemate il vostro TS e scoprite quali parametri devono essere ottimizzati.
 
Reshetov:
Cercate nella vostra ricerca locale "test in avanti" o "OOS". È stato discusso molte volte.
Grazie, ci darò un'occhiata.
 
impus:

Buon pomeriggio, signori.

Sono un principiante e ho una domanda: come posso ottimizzare correttamente il mio robot?

So quali pulsanti e caselle di controllo devono essere premuti per eseguire il tester di strategia.

Mi chiedo, come capire per quale periodo ottimizzarlo? Come capire per quanto tempo l'EA funzionerà "bene"?

Come possiamo calcolarlo? Non è solo il metodo dell'intuizione che può funzionare...

Vedi i riferimenti (dal mio (settimo nella pagina) post) qui, in particolare: "Robert Pardo "Sviluppare, testare e ottimizzare i sistemi di trading per il trader di borsa".
Motivazione: