[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 591

 
lottamer:

e perché ho una serie di condizioni

if (cmd999==OP_SELL && Stoch_1>Stoch_2 && OrderProfit()>10)

viene eseguito come TRUE anche se OrderProfit è inferiore a 10 (dollari) ?

Dopo tutto, tutto ciò che è inferiore a 10 dollari dovrebbe essere tagliato?


Prova a stampare le variabili prima di questa linea, forse il tuo programma non raggiunge questa linea, o i valori delle variabili non sono quelli che ti aspetti. Per esempio, se avete un conto in centesimi, la funzioneOrderProfit() in alcune società di brokeraggiorestituisce il valore in centesimi, e in altre - in dollari.
 
rigonich:

Prova a stampare le variabili prima di questa linea, forse il tuo programma non raggiunge questa linea o i valori delle variabili non sono quelli che ti aspetti. Per esempio, se il vostro conto è in centesimi, la funzione OrderProfit() restituisce il valore in centesimi in alcune società di brokeraggio e in dollari in altre.


1 - il programma non può raggiungere questa linea - perché è ESEGUITO (altrimenti l'Expert Advisor non ha fatto quello che mi aspetto da lui).

2 - usando il Print ("profit=", OrderProfit()); (che si comporta stranamente - poi scrive, poi tace...) ottengo il seguente output:

"profitto=-0,24".

che apparentemente significa in dollari. Ma quando scrivo nella condizione seOrderProfit()>10 - passa facilmente...

 
Desead:

qualcuno sa del rollover?

Quando gli ordini vengono riaperti con il rollover, ci possono essere degli slittamenti per i valori di stop e takeout? E come sarà impostato lo stop se dopo il rollover la differenza tra il prezzo aperto e lo stop sarà inferiore al livellatore di stop?

Il mio compito è il seguente. Se ho un ordine a mercato aperto, dovrei controllare se è stato aperto con rollover e se lo è stato, dovrei ottenere il ticket dell'ordine precedente, che è stato chiuso. Forse qualcuno suggerirà un algoritmo di ricerca? Per ora lo sto facendo:

1. Seleziono il primo ordine aperto.
2. Guardo il tempo della sua apertura, se è aperto dalle 23:40 alle 00:20, allora continuo a controllare questo ordine ulteriormente (la finestra di 40 minuti è presa solo nel caso, anche se in idea è possibile prendere dalle 23:50 alle 23:59)
3. Memorizzo il biglietto, mi fermo e prendo
4 Controllo tutti gli ordini chiusi in base alla cronologia, dove i commenti contengono la parola "swap" e le coppie di valute corrispondono

5. Dovrei confrontare i dati su stop e Takeovers. Se sono simili, ecco la coppia di ordini richiesta, altrimenti - torno al passo 1

1. Non ho slittamenti al rollover, è un punto tecnico.

2.(3-4-5) È sufficiente controllare se c'è uno swap nel commento al tempo di rollover specificato.

 
Zhunko:
Sono un telepate! Che cosa è successo? :-))


È possibile in qualche modo scrivere dei commenti alle linee come quelli che si scrivono quando si fa un ordine (numero di biglietto e tipo di ordine)?

Allora dimmi, non essendo un telepate, di quali linee stiamo parlando?

 
rigonich:


È possibile in qualche modo scrivere dei commenti alle linee come quelli che vengono scritti quando si fa un ordine (numero di biglietto e tipo di ordine)?

Allora spiegami, non essendo un telepate, di quali linee stiamo parlando?


è la linea verde tratteggiata che segna il livello di apertura del trade :))
 
lottamer:


1 - il programma non può fallire nel raggiungere questa linea - perché è ESEGUITO (altrimenti l'EA non farebbe ciò che mi aspetto che faccia).

2 - usando il Print ("profit=", OrderProfit()); (che si comporta stranamente - ora scrive, ora tace...) ottengo il seguente output:

"profitto=-0,24".

che apparentemente significa in dollari. Ma quando scrivo nella condizione seOrderProfit()>10, ci passa facilmente...


Questo può significare, per esempio, che è stato selezionato l'ordine sbagliato per la modifica, quali parametri state chiedendo, o qualcos'altro.

Se l'Expert Advisor fa quello che si suppone faccia, perché altrimenti ci faresti qualcosa?

Quasi ogni programma non arriva in alcuni punti durante la sua esecuzione. Per esempio, se c'è un operatore if() in un programma e la condizione è falsa, la parte dell'operatore che segue la condizione non viene eseguita, cioè il programma non ci arriva.

 
rigonich:

Se non risponde, può significare che ha scelto l'ordine sbagliato per la modifica o qualcos'altro.


Qui è semplice - gli ordini sono sempre uno alla volta. non ci possono essere 2. quindi è difficile perdere .... nei parametri

print è silenzioso, e il comando che lo segue, che è in un BOX con esso, passa (chiudere l'affare)

deve essere qualcosa nella dimensione del profitto ... forse sono i punti? e devo mettere 0,001 ?

anche se dice chiaramente "-0,24" - dollari...

non capire...

 

Buona sera! Potete dirmi se questa condizione funzionerà - non una risposta esatta più o meno tre punti?

 if(tsena+3*Point>Ask&&tsena-3*Point<Ask&&wtoraya__stupen){//Если, пройдя сто пунктов вверх,или вниз, цена вернулась обратно, удаляем все позиции.  
    

Ho disegnato due assi di coordinate su carta separata per 25 minuti, indovinando.

 
lottamer:

è una linea verde tratteggiata che segna il livello di apertura dell'affare :))

Nel terminale ci sono diverse linee, orizzontali, verticali, linee di tendenza, linee di livelli di ordini, linee del prezzo corrente Ask e Bid, linee di indicatori e altre linee.
 
rigonich:

Il terminale ha diverse linee, orizzontali, verticali, linee di tendenza, linee di livelli di ordini, linee del prezzo corrente Ask e Bid, linee di indicatori e altre linee.

mi sembra che le altre linee siano tracciate arbitrariamente.