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

 
Tretyakov Rostyslav #:

Significa che se non ci sono ordini

Sì, o se il drawdown è sotto un certo livello. Ma per quanto ho capito l'azzeramento non c'entra niente, se non c'è azzeramento allora c'è una chiusura infinita di ordini e nel mio caso un ordine non è chiuso.

 
EVGENII SHELIPOV #:

Sì, o un drawdown sotto un certo livello. Ma per quanto ho capito l'azzeramento non c'entra niente, se non c'è azzeramento allora c'è una chiusura infinita di ordini e nel mio caso un ordine non è chiuso.

Questo perché dopo che il primo ordine è stato chiuso questa condizione non funziona più

if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && OrderGroupCloseSignal()==0 &&
                  Drawdown >= DrawdownClosingMinMaxOrders && FindPenultimateProfit() > 0)

quindi non va oltre alla funzione di chiusura

 
Tretyakov Rostyslav #:

Perché dopo che il primo ordine è stato chiuso, questa condizione non è più valida

che significa che non arriva oltre, alla funzione di chiusura

Pensi che questa condizione sia nel comando per chiudere gli ordini e nella funzione per chiudere gli ordini, se rimuovo questa condizione dalla funzione per chiudere gli ordini cambierà qualcosa?

 
EVGENII SHELIPOV #:

Pensi che questa condizione sia nel comando per chiudere gli ordini e nella funzione per chiudere gli ordini, se rimuovo questa condizione dalla funzione per chiudere gli ordini cambierà qualcosa

Accelererà le cose... perché controllare la stessa cosa due volte?

A proposito, hai postato due funzioni diverse

ClosseMinMaxPenultimateOrdersZero()

и

ClosseMinMaxPenultimateOrders()
È questa l'intenzione?
 
Tretyakov Rostyslav #:

Questo accelererà le cose... perché controllare due volte la stessa cosa.

A proposito, hai postato due funzioni diverse

и

È così che funziona?

Ho controllato ora e l'EA si chiude male senza questa condizione, quindi è impossibile farne a meno.

 
Vitaly Muzichenko #:

Per favore, aiutatemi!

Non ricevo affatto quello che mi aspetto. Ho bisogno di leggere il file di log.

Avrebbe dovuto iniziare qui:

#include <WinAPI\\fileapi.mqh>
 
EVGENII SHELIPOV #:

Ho controllato ora e senza di esso l'Expert Advisor si chiude male, quindi non c'è modo di farlo senza.

Quindi non sono la stessa cosa.

               if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && OrderGroupCloseSignal()==0 &&
                  Drawdown >= DrawdownClosingMinMaxOrders && FindPenultimateProfit() > 0)
               if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && OrderGroupCloseSignal()==1 &&
                  Drawdown >= DrawdownClosingMinMaxOrders && FindPenultimateProfit() > 0)
 
Иван la funzione FileSeek non hanno avuto successo.
Il mio intelletto non è sufficiente per capirne la ragione. Per favore, spiega cosa diavolo sta succedendo.

Ebbene? Qualcuno ha un indizio?

 

Amici, per favore aiutatemi.

Ho un EA multicurrency che ho scritto in mql4. Nel tester ovviamente non funziona. Ho deciso che dovrei passare a mql5.

Ho adattato tutti gli errori del compilatore e li ho corretti. ECCO l'uso degli indicatori tecnici. La mia testa è immersa nelle fiamme e non ho idea di cosa fare. La documentazione è incomprensibile e copre due pagine. Forse sto cercando nel posto sbagliato.

Una linea di codice in mql4 come segue

double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0);

o

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0);

Secondo la documentazione, l'intera pagina di codice cambia in mql5. Maniglie, buffer, array con parametri, questo per iniziare, questo per calcolare, gestione degli errori durante la creazione della maniglia... questo è pazzesco... Forse sto cercando nel posto sbagliato.

E se uso diverse coppie e diversi timeframe, ottengo "Guerra e Pace".

 
Sergey Dymov un EA multicurrency che ho scritto in mql4. Nel tester ovviamente non funziona. Ho deciso che dovrei passare a mql5.

Ho adattato tutti gli errori del compilatore e li ho corretti. ECCO l'uso degli indicatori tecnici. Ho ben poca idea di cosa fare con la mia testa. La documentazione è incomprensibile e copre due pagine. Forse sto cercando nel posto sbagliato.

Una linea di codice in mql4 come segue

double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0);

o

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0);

Secondo la documentazione, l'intera pagina di codice cambia in mql5. Maniglie, buffer, array con parametri, questo per iniziare, questo per calcolare, gestione degli errori durante la creazione della maniglia... questo è pazzesco... Forse sto cercando nel posto sbagliato.

E se uso diverse coppie e diversi timeframe, ottengo "Guerra e Pace".

int handleSQ=-1;
double BufferSQ[1];
int OnInit()
{

  handleSQ=iCustom(Symbol(),PERIOD_CURRENT,"squares",Period1,Period2,Period3,Dev_Step_1,Dev_Step_2,Dev_Step_3);
  if(handleSQ<0) {
    return(INIT_FAILED);
    Print("handleSQ = ",handleSQ,"  error = ",GetLastError());
  }
//---
  return(INIT_SUCCEEDED);
}

void OnTick()
{

    int copy=CopyBuffer(handleSQ,0,1,1,BufferSQ);
    if(copy<0) Print("Неудачная попытка копирования Squares");
    u1=BufferSQ[0];//iCustom(Symbol(),PERIOD_CURRENT,"squares_v2",Period1,Period2,Period3,Dev_Step_1,Dev_Step_2,Dev_Step_3,i);