[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 302

 
hoz:

Hmm. Immagino che non si possa usare una costante per il caso come variabile, secondo la documentazione. Dice un qualche tipo di costante di destinazione, costante di carattere o espressione di carattere.

Funziona solo se si imposta una lettera di tipo stringa, cioè 1 carattere (se più di 1 carattere, il compilatore impreca) o un numero.

Nient'altro.
Dice alcune costanti di destinazione, espressioni di carattere e costanti di carattere.

Solo costanti intere.
 
Aiutatemi a consigliare, c'è un segnale per aprire una posizione di acquisto, dopo un po 'c'è un altro segnale o diverse posizioni di acquisto, ognuno dei quali dura per 1 candela come fare al momento di ogni segnale di aprire un nuovo ordine e solo uno, e non pacchetti senza chiudere gli ordini precedenti?
 
tommy27:
Si prega di consigliare, c'è un segnale per aprire una posizione di acquisto, qualche tempo dopo c'è un altro segnale o diversi segnali di acquisto, ognuno dei quali dura per 1 candela come fare un nuovo ordine aperto durante ogni tale segnale e solo uno, e non pacchetti senza chiudere gli ordini precedenti?
Controlla quante barre fa è stata aperta l'ultima posizione. Se è superiore al valore specificato, può essere aperta una nuova posizione.
 
artmedia70:
Controlla quante barre fa è stata aperta l'ultima posizione. Se è più di questo, si può aprire una nuova posizione.


Grazie
 

Sto imparando a lavorare con le biblioteche. Sto scrivendo un Expert Advisor, c'è una funzione come questa:

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}

L'ho messo nell'inclusione, tutto funziona come dovrebbe. Ma se lo collego alla libreria, c'è un errore durante la compilazione dell'Expert Advisor:

'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 19)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 19)
4 ошибок, 0 предупреждений.

Perché questa funzione non è visibile nella libreria?

La libreria ha questo contenuto e si compila perfettamente:

//+-------------------------------------------------------------------------------------+
//|                                                                  Scalper_M1_lbr.mq4 |
//|                                                                                 hoz |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""
#property library

int i_fastMATF,
    i_fastMAPeriod,
    i_fastMAShift,
    i_fastMAMethod,
    i_fastMAApplied,
    i_fastMAIndex,
    i_slowMATF,
    i_slowMAPeriod,
    i_slowMAShift,
    i_slowMAMethod,
    i_slowMAApplied,
    i_slowMAIndex,
    i_filtrMATF,
    i_filtrMAPeriod,
    i_filtrMAShift,
    i_filtrMAMethod,
    i_filtrMAApplied,
    i_filtrMAIndex;
//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}
 
Ciao a tutti. Ho davvero bisogno di qualche lezione di programmazione. Puoi dirmi dove posso scaricarli senza ulteriori problemi? Ho trovato solo questi: http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html Ma non sono adatti a me, perché sono troppo complicati.
 
popovagalina:
Ciao a tutti. Ho davvero bisogno di qualche lezione di programmazione. Puoi dirmi dove posso scaricarli senza ulteriori problemi? Ho trovato solo questi: http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html Ma non sono adatti a me, perché sono troppo complicati.
Perché il libro di testo di S. Kovalyov non va bene? Vedi sopra e Documentazione e TA per aiutare! Buona fortuna!
 

Salve.

Potreste dirmi se l'operatore OrdersTotal() conta effettivamente tutti gli ordini aperti o quelli appartenenti al simbolo assegnato all'Expert Advisor?

Se è generale, come possiamo calcolare solo EURUSD se ci sono ordini aperti per USDCHF ecc.

Grazie.

 
ed3sss:

Salve.

Potreste dirmi se l'operatore OrdersTotal() conta effettivamente tutti gli ordini aperti o quelli appartenenti al simbolo assegnato all'Expert Advisor?

Se è generale, come possiamo calcolare solo EURUSD se ci sono ordini aperti per USDCHF ecc.

Grazie.


Li calcolerà tutti. Se volete essere specifici su un simbolo o su qualcos'altro, potete usare questa funzione:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Возвращает количество ордеров.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ko=0, ot;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) ko++;
        }
      }
    }
  }
  return(ko);
}
 
Ora ho una domanda: i segnali al gufo provengono da 2 indicatori, il primo segnale dura 1 barra e poi scompare, e il secondo appare o sulla stessa barra o dopo alcune barre. Come fare in modo che il gufo ricordi il 1° segnale e aspetti che appaia il secondo non importa quante battute dopo.
Motivazione: