[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 39

 
Cod:

E qui, il GA sta aumentando il numero di corse? È possibile?

Ops!

Un caso estremamente interessante...)

 
DhP:

Whoa!

Caso estremamente interessante...)


Non più opzioni del possibile
 

Grazie, l'ho cercato ma non ho capito niente. Per esempio:

Una compravendita non viene eseguita se uno dei requisiti specificati viene violato

SellLimit

1) OpenPrice-Bid StopLevel

2) SL-OpenPrice ≥StopLevel(più avanti nell'esempio)

3) OpenPrice-TP ≥ StopLevel

Cosa significa "L'operazione di trading non viene eseguita"? Se un ordine pendente non viene piazzato (accettato) o se è già piazzato, non si attiva (cosa gli succede - viene cancellato dal broker)? Ripeto la domanda, se le condizioni sono cambiate e un ordine piazzato con successo un'ora dopo per esempio ha SL-OpenPrice in cambiato da quel momento StopLevel, cosa gli succederà?

E un'altra domanda. Supponiamo che lo spread fosse di 2 ed è diventato di 7 punti. Cosa significa - il prezzo di offerta o di domanda è cambiato, o il broker lo sceglie arbitrariamente come meglio crede?

 

Quando si cerca di compilare un file include (*.mqh) si verifica un errore '\fine_di_programma' - nessuna funzione definita. Cosa c'è che non va e come risolvere il problema?

extern double Lots = 0.0;
extern int Percent = 0;
extern int StopLoss = 100;
extern int TakeProfit = 40;
extern int TrailngStop = 100;

int Level_New;
int Level_Old;

 

Ho guardato la copertina del libro di STUDIO da tutti i lati e ancora non ho capito niente...))

Lo vedo scritto così dappertutto:

int Ticket = OrderSend(...);

La seguente scrittura è corretta se voglio ottenere Price = OrderOpenPrice() per l'ulteriore elaborazione e l'impostazione degli stop?

double Price = OrderSend(...);

Per me funziona, ma è accettabile?

 
Vinin:

Nessuna funzione incorporata, devi solo scrivere il tuo wizard con il periodo di calcolo a seconda del periodo di tempo
Nessun problema... Ma come determinare il valore attuale di TF nel codice?
 

Buona giornata a tutti voi!

Scrivendo per la prima volta, se qualcosa è sbagliato, scusate.

Domanda, perché la funzione (vedi sotto) dà errore: 'A' - l'elemento dell'array non può essere assegnato?

double get_init_values(double A[], int index){

int size = 0;

size = ArraySize(A);

if (size < index){

return (0);

}else{

A [index] = Ask;

return (A);
}

}
Grazie in anticipo!
 
Saltan:

Quando si cerca di compilare un file include (*.mqh) si verifica un errore '\fine_di_programma' - nessuna funzione definita. Cosa c'è che non va e come risolvere il problema...?

Non c'è bisogno di provare! I file .mqh sono messi in include e stanno lì tranquilli. Quando si compila l'EA in cui sono scritti, il compilatore unisce automaticamente gli elementi di codice necessari e li compila insieme.
Quando si cerca di compilare separatamente .mqh, il compilatore cerca di determinare il tipo di prodotto (Expert Advisor, indicatore...) e comincia a chiedere "da dove hai cominciato?
Dovresti iniziare a trattare con .mqh se si verificano errori durante la corretta compilazione.
 

Ho inserito un nuovo blocco nel mio EA per calcolare la dimensione del lotto della posizione da aprire. L'idea è la seguente:

1. Lo stop è impostato al massimo del giorno corrente in caso di posizione di vendita, e al minimo del giorno in caso di posizione di acquisto.

2. Quando scatta la condizione di apertura dell'ordine, questo blocco per il calcolo del lotto inizia ad essere eseguito. Si calcola la distanza dal massimo e dal minimo del giorno in punti e si fa un loop dei lotti partendo da 0,1 per trovare il lotto necessario (5% quando uno stop è scattato)

Ma nel registro appaiono queste righe:

2011.01.30 16:59:47 TestGenerator: errore dati non abbinati (limite di volume 1107 a 2011.01.13 14:45)

Non appena spengo questa unità, tutto è a posto. Dove mi sbaglio? Si prega di avvisare.

Ecco il codice stesso:

double Balance = AccountBalance();
    double DistanceToHighDay = MathAbs(HighDay-Ask)*10000;
    double DistanceToLowDay  = MathAbs(Bid-LowDay)*10000;
    double ExpectedSellLoss;
    double ExpectedBuyLoss;
    double ExpectedSellRisk;
    double ExpectedBuyRisk;
    double LotSell;
    double LotBuy;
    int     Risk = 5;
   
    // Расчёт лота для Sell
    for(int i=0.1; ExpectedSellRisk<Risk; i=i+0.1)
       {
        ExpectedSellLoss = DistanceToHighDay*i*10;         // ожидаемый убыток в $
        ExpectedSellRisk = (ExpectedSellLoss*100)/Balance; // ожидаемый убыток в %
        LotSell=i;
       }
       
    // Расчёт лота для Buy
    for(i=0.1; ExpectedBuyRisk<Risk; i=i+0.1)
       {
        ExpectedBuyLoss = DistanceToLowDay*i*10;         // ожидаемый убыток в $
        ExpectedBuyRisk = (ExpectedBuyLoss*100)/Balance; // ожидаемый убыток в %
        LotBuy=i;
       }
 
Sto imparando mql4, non riesco a scrivere un semplice indicatore di volume, cioè che calcoli quanti tick ci sono in ogni barra, se qualcuno ne ha uno, per favore lo condivida. Se qualcuno lo scrive specificamente, grazie mille.