Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1676

 
Alexey Viktorov #:

Se hai bisogno di chiudere 0,3 e poi 0,7 dal 1° lotto, è più facile aprire due ordini con takeoff diversi.

Questo non è conveniente, nel mio sistema di scalping devi seguire attivamente e tatticamente i trade. + ci possono essere impulsi, e aprire da diverse finestre o cambiare molto in pochi secondi è una tale attività :) È più facile aprire 1 lotto e poi riparare parzialmente. Ma non fissare manualmente, ma da livelli di prezzo dati (prezzo). Se lavorate con 3 Takei, dovrete suonare il piano quando aprite gli accordi.
 
TranceFM #:
Non è conveniente, nel mio sistema di scalp bisogna essere attivamente tattici per accompagnare i trade. + ci possono essere impulsi, e aprire da diverse finestre o cambiare lotto in pochi secondi è una tale attività :) È più facile aprire 1 lotto e poi riparare parzialmente. Ma non fissare manualmente, ma da livelli di prezzo dati (prezzo). Se lavorate con 3 Takei, dovrete suonare il piano quando aprite gli scambi.
Allora ordinati un Expert Advisor
 
MakarFX #:
Allora ordinati un consulente.

Quindi non ce ne sono di già pronti? Ok. Quanto costerebbe un gufo come questo?

 

Nella sceneggiatura.

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//обьявим класс
class Сleaner
 {
 public:     

         Сleaner() { Alert("Конструктор");
          }
           ~Сleaner() { Alert("Деструктор"); }
  void come(int &array[],int &re[]){ 
        int AS=ArraySize(array);
        int n=0;    
  for(int i=0; i<AS; i++) {
    if(ArraySearch(re, array[i])==-1) {
      n++;
      ArrayResize(re,n);
      re[n-1]=array[i];
     }
   }
 }
 void sleep() { Sleep(1000); }
private:
          int ArraySearch(int& m[], int e)
       {
        for(int i=0; i<ArraySize(m); i++) {
        if(m[i]==e) return(i);
//        Print(" e =",e,", ArraySize(m) =",ArraySize(m)," ,m[i] =",m[i]," ,i =",i );
       }
  return(-1);
    }
 };
Сleaner pi;
int arr[]= {6,4,6,7,9,65,66,2,2,9,7,7};
int res[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  
  pi.come(arr,res);
  pi.sleep();
  for(int z=0;z<ArraySize(res);z++)
  Print(res[z]);
   
  }
//+------------------------------------------------------------------+

funziona correttamente.

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: Allarme: Distruttore

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: uninit reason 0

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 2

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 66

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 65

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 9

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 7

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 4

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 6

2021.10.14 17:24:28.209 Eye_12 GBPUSD,M5: inizializzato

2021.10.14 17:24:28.209 Eye_12 GBPUSD,M5: Alert: Constructor

Le ripetizioni vengono rimosse dall'array. In owt, se array.

int arr[]= {6,4,6,7,9,65,66,2,2,9,7,7};

è dinamico e aumenta, funziona anche correttamente, ma se diminuisce, comincia a mentire.

 

Non so quanto fedelmente ho riprodotto

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//обьявим класс
class Сleaner
 {
 public:     

         Сleaner() { Alert("Конструктор");
          }
           ~Сleaner() { Alert("Деструктор"); }
  void come(int &array[],int &re[]){ 
        int AS=ArraySize(array);
        int n=0;    
  for(int i=0; i<AS; i++) {
    if(ArraySearch(re, array[i])==-1) {
      n++;
      ArrayResize(re,n);
      re[n-1]=array[i];
     }
   }
 }
 void sleep() { Sleep(1000); }
private:
          int ArraySearch(int& m[], int e)
       {
        for(int i=0; i<ArraySize(m); i++) {
        if(m[i]==e) return(i);
//        Print(" e =",e,", ArraySize(m) =",ArraySize(m)," ,m[i] =",m[i]," ,i =",i );
       }
  return(-1);
    }
 };
Сleaner pi;
int arr[]= {6,6,2};
int res[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   arr[0]= 6;
   arr[1]= 6;

  pi.come(arr,res);
//  pi.sleep();
  for(int z=0;z<ArraySize(res);z++)
  Print(res[z]);
   
  }
//+------------------------------------------------------------------+

ma questo è esattamente il risultato nel gufo

2021.10.14 21:11:34.802 Oko_12 GBPUSD,M5: Allarme: Distruttore

2021.10.14 21:11:34.802 Eye_12 GBPUSD,M5: uninit reason 0

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: 2

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: 6

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: inizializzato

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: Alert: Constructor


 
Ciao a tutti, signor sviluppatore esperto, potresti per favore consigliare un principiante? Sono interessato al processo di impacchettamento di MQL4 Expert Advisor in un file ex4 da caricare su Market se ho un indicatore personalizzato collegato tramite iCustom (e l'indicatore stesso è collegato anche ad un altro indicatore, e quest'ultimo a sua volta è una libreria). Mi chiedo se c'è un modo semplice per spostare tutta questa roba in un file o dovrò integrare tutto direttamente nel codice EA?
 
Aleksandr Kononov indicatore personalizzato collegato tramite iCustom (e l'indicatore stesso è collegato anche ad un altro indicatore, e quest'ultimo a sua volta è collegato alla libreria). Mi chiedo se c'è un modo semplice per spostare tutta questa roba in un file o dovrò integrare tutto direttamente nel codice EA?

devono integrare tutto

 
Aleksandr Kononov indicatore personalizzato collegato tramite iCustom (l'indicatore stesso è collegato anche ad un altro indicatore, e quest'ultimo a sua volta è collegato alla libreria). Mi chiedo se c'è un modo semplice per spostare tutta questa roba in un file o dovrò integrare tutto direttamente nel codice EA?

Connettersi attraverso una risorsa

 
Vitaly Muzichenko #:

Connettersi attraverso una risorsa

Grazie per la lettura🤜🤛
 
ENUM_POSITION_TYPE type = PositionGetInteger(POSITION_TYPE);
Perché il compilatore dà l'avviso di conversione implicita di enum?
Документация по MQL5: Торговые функции / PositionGetInteger
Документация по MQL5: Торговые функции / PositionGetInteger
  • www.mql5.com
PositionGetInteger - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5