[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 501

 
baykanur:

src inserito

Non so cosa sia stato commentato

c'è una discrepanza nel numero di operazioni redditizie nello Strategy Tester.

In questa forma (senza controllo dell'apertura della nuova barra) testate SOLO per modello: "Tutti i tick..." in strategy tester.

Non usate i valori dell'indicatore sulla 0a barra, se usate non i prezzi di apertura, ma i prezzi di chiusura, cioè cambiate questa parte del codice - mettete 1 invece di 0

 
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_CLOSE,1);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,1);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,1);

o usare i prezzi aperti, cioè

 
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_OPEN,0);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,0);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_OPEN,0);
 
griha:
Buon pomeriggio,
1. Voglio aprire una posizione per il 3-4% del mio conto secondo il mio money management. C'è un calcolatore per calcolare la dimensione del lotto necessaria per qualsiasi coppia (o almeno le coppie più popolari)? O come posso calcolare manualmente la dimensione del lotto, per esempio EURUSD?
2. L'aiuto del terminale non spiega cos'è il "Livello" calcolato nella scheda "Terminale/Trading". Chi può spiegare cosa significa?

Lotto massimo che puoi aprire su tutti i depositi (vedi codice). In generale, è più corretto iniziare con due parametri: stop e leva.

double MaxmaxLots(int cmd) 
{
    double result = 0;
    double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
    double v = MarketInfo(Symbol(), MODE_MINLOT);
    double mult = 100;
    
    while (true) {
        if (AccountFreeMarginCheck(Symbol(), cmd, v + lotStep * mult) > 0) { 
            v = v + lotStep * mult;
        } else {
            mult = mult / 10;
            
            if (mult < 1) {
                if (AccountFreeMarginCheck(Symbol(), cmd, v) > 0) { 
                    result = v;
                }
                break;
            }
        }
    }
    
    return(result);
}         
 
Un piccolo suggerimento agli amministratori: fare un pulsante - domanda risposta (quando qualcuno risponde), e se non risposto, le domande prioritarie erano in cima alla valutazione. Anche se probabilmente è difficile - la programmazione in generale non è facile :) Posso, naturalmente, domanda senza risposta, duplicare 10 volte, ma che bene - il forum non crescerà dal contenuto semantico, e duplicati inutili.
 

Ciao !!!! Aiutami a risolvere un problema. Due indicatori in una finestra CCI e MACD, uno ha livelli fissi l'altro ha max e min fluttuanti. Come automatizzare entrambi rispetto al livello zero del CCI.

 

Potete dirmi come aprire un solo ordine per periodo di tempo? Per esempio, c'è una sezione tra la barra 1 e la barra 20. Durante questo periodo, un ordine dovrebbe essere aperto su ogni frattale, e un ordine per ogni frattale. Come possiamo farlo?

 
sss2019:

Potete dirmi come aprire un solo ordine per periodo di tempo? Per esempio, c'è una sezione tra la barra 1 e la barra 20. Durante questo periodo, un ordine dovrebbe essere aperto su ogni frattale, e un ordine per ogni frattale. Come si può fare?

L'ordine viene aperto sulla barra corrente. Avete visto un frattale sulla barra attuale?
 
artmedia70:
L'ordine si apre sulla barra corrente. Avete visto un frattale sulla barra attuale?

Diversi ordini possono essere aperti sulla barra corrente. Gli ordini pendenti sono aperti ai prezzi dei frattali che sono stati trovati durante il periodo di tempo: quelli inferiori sono in vendita e quelli superiori sono in acquisto. Dovremmo fare un ordine aperto su un frattale.
 
sss2019:

Diversi ordini possono essere aperti sulla barra corrente. Gli ordini pendenti sono aperti ai prezzi frattali che sono stati trovati durante il periodo di tempo, quelli inferiori sono in vendita e quelli superiori sono in acquisto. Dovremmo fare un ordine aperto su un frattale.

Se state parlando di piazzare ordini in sospeso, non vi capisco. Aprire un ordine è aprire una posizione di mercato, per come la vedo io. Impostare un ordine significa piazzare un ordine in sospeso.

Fai un assegno in questo modo. Trova un frattale, trova il suo prezzo e il suo tempo.
Controlla se c'è un ordine pendente con il prezzo uguale al prezzo del frattale e se l'ordine è stato piazzato al momento della barra con il frattale.
In caso contrario, impostatene uno.

 
artmedia70:

Se state parlando di piazzare ordini in sospeso, non vi capisco. Aprire un ordine è aprire una posizione di mercato, per come la vedo io. Impostare un ordine significa piazzare un ordine in sospeso.

Fai un assegno in questo modo. Trova un frattale, trova il suo prezzo e il suo tempo.
Controlla se c'è un ordine impostato con il prezzo uguale al prezzo del frattale e il tempo della barra con il frattale.
In caso contrario, posizionatelo.


Se ci sono due frattali con lo stesso prezzo, dovremmo aprire due ordini, ma solo uno si aprirà. E se controlliamo solo in base al tempo, allora all'apertura di una nuova candela, gli ordini ripetuti saranno aperti dagli stessi frattali.
 
sss2019:

E se ci sono due frattali con lo stesso prezzo, dovremmo aprire due ordini e solo uno si aprirà. E se controlliamo solo in base al tempo, allora all'apertura di una nuova candela, gli ordini ripetuti saranno aperti dagli stessi frattali.

Ecco perché dobbiamo ricordare il prezzo e il tempo del frattale . Se il tempo del frattale, per il quale è già stato piazzato un ordine, coincide con il tempo del frattale, allora non abbiamo bisogno di piazzare nulla; l'ordine è già in atto. Se il tempo del frattale trovato non coincide con il tempo del frattale per il quale è già stato fatto un ordine, allora è un nuovo frattale e un altro ordine deve essere fatto anche se i prezzi dei due frattali sono gli stessi.

Usiamo il tempo di un frattale per determinare se un ordine viene piazzato o meno su quel frattale. E usiamo il prezzo del frattale per determinare il prezzo di apertura dell'ordine pendente