Come trovare il tempo della barra in cui le medie mobili si sono incrociate? (codice all'interno) - pagina 2

 

Oh e Alladir - sembri il tipo odioso.

Fatti un favore e smetti di sprecare il tuo tempo scrivendo su questo thread o su quelli futuri che potrei scrivere, se tutto quello che vuoi fare è trollare e non essere utile in alcun modo.

 
DomGilberto:

Oh e Alladir - sembri il tipo odioso.

Fatti un favore e smetti di sprecare il tuo tempo scrivendo su questo thread o su quelli futuri che potrei scrivere, se tutto quello che vuoi fare è trollare e non essere utile in alcun modo.

Se non puoi essere civile non postare.
 

WHRoader (se non ti dispiace) potresti dirmi se ho ragione o torto in questo?

double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0); 

int Buy_Price = buyPrice; 

int buyticket = OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);   Usually I'd put OP_BUY where Buy_Price is...

Stai dicendo che siccome iHighest indica semplicemente un numero di barra, il mio tentativo di mettere Buy_Price al posto di OP_BUY non ha senso perché OrderSend prende un double? (quando iHighest è un intero?)

Come posso convertire la mia logica iHighest in un prezzo in modo che la mia funzione OrderSend capisca che voglio comprare il più alto della gamma iHighest?

 
RaptorUK:
Se non puoi essere civile non postare.


Sì, hai ragione. Mi dispiace.
 
DomGilberto:

WHRoader (se non ti dispiace) potresti dirmi se ho ragione o torto in questo?

"double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);"

int Buy_Price= buyPrice;

"int buyticket =OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,0,NULL,MagicNumber,0,Green);" Di solito metterei OP_BUY dove è Buy_Price...


  1. Riproduci video
    Per favore, modifica il tuo post.
    Per grandi quantità di codice, allegalo.

  2. "double buyPrice = iHighest... 
    "double price = int bar index" non ha senso. Scomponi il tutto:
    // double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    int    iTBT     = iBarShift(Symbol(), 0, triggerBarTime, true),
           iHH      = iHighest(Symbol(), 0, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    
  3. Se la maggior parte delle funzioni (tranne marketInfo) non hai bisogno di usare Symbol(). Puoi usare NULL come simbolo del grafico corrente, così come usi già 0 come timeframe del grafico corrente.
 

Omg - Perché è così chiaro dopo aver realizzato! Credo che sia qui che la pratica rende perfetti.

Onestamente lo capisco molto meglio ora. Metti un :) sulla mia faccia!

Ora cercherò di farlo e vedrò cosa ne verrà fuori!

Grazie!

 
int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Quando tento di usare questo di seguito, ottengo un errore nel giornale che dice che la funzione cmd OrderSend deve essere un intero?

Ovviamente non sto capendo perché hai detto che "OrderSend prende solo un prezzo (un doppio) non ha senso aprire un ordine a 9"

Ovviamente se lo cambio in "int Buy_Price = buyPrice" questo funziona per piazzare gli ordini, ma non è rilevante per dove dovrebbe essere l'entrata. (Questa è la mia ultima domanda - non voglio prendere per il culo, naturalmente!)

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
         iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];
 
DomGilberto:

Quando cerco di usare questo sotto, ottengo un errore nel diario che dice che la funzione OrderSend cmd deve essere un intero?

Ovviamente non sto capendo perché hai detto che "OrderSend prende solo un prezzo (un doppio) non ha senso aprire un ordine a 9".

Ovviamente se lo cambio in "int Buy_Price = buyPrice" questo funziona per piazzare gli ordini, ma non è rilevante per dove dovrebbe essere l'entrata. (Questa è la mia ultima domanda - non voglio prendere per il culo ovviamente!)

L'errore è il cmd in OrderSend(), so che non vuoi sentirtelo dire ma se vuoi imparare devi anche imparare a controllare la documentazione e imparare a leggerla . . . fa tutto parte del processo . . . quando codifico un comando OrderSend() lo controllo ogni volta con la documentazione per controllare di averlo ricordato correttamente.

int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Che tipo di ordine è questo? click -->OrderSend() dice che il 2° parametro ècmd - Tipo di operazione. Può essere qualsiasi dell'enumerazione delle operazioni commerciali.

 

Sì, hai ragione RaptorUK - in realtà (più o meno su tutto quello che faccio) leggo la documentazione (il dito è praticamente seduto su F1 tutto il tempo).

Gesù - Con occhi nuovi mi sono reso conto di quanto sono stato stupido!

Non volevo mettere buyPrice al cmd - secondo parametro, volevo metterlo al 4° parametro (doppio Price)!

Quindi funziona (mettendolo nell'ordine giusto) - l'ho cambiato in un ordine buy e sellstop. Dio, sono infastidito da quanto sono stato idiota!

int buyticket = OrderSend(Symbol(),OP_BUYSTOP,LotSize,buyPrice,3,bsl,btp,NULL,MagicNumber,0,Green); 
      if(buyticket>0)OrderModify(buyticket,OrderOpenPrice(),bsl,btp,0,CLR_NONE);

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
        iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];

Il "buyPrice" sta semplicemente schiaffando l'ordine sopra il massimo della barra chiusa più recente che ha toccato la 21 EMA (invece della barra che era la più alta dell'incrocio delle MA e la barra che ha toccato la 21 EMA...)

Ci giocherò un po' e vedrò dove sto sbagliando! (ho passato così tanto tempo a fissare questo sta diventando doloroso ora lol.)

Grazie!!!!

(p.s cosa significa // Include tBT bar. Len = da - a + 1 nota?)

 
  1. DomGilberto:

    (p.s cosa significa // Includere la barra tBT. Len = da - a + 1 nota?)

    HH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1

    L'indice della barra più alta a partire da zero per le barre iTBT+1 include la barra iTBT.

    Il tuo post originale

    double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    
    non includeva la barra triggerBarTime.
  2. iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    Perché hai cambiato il NULL,0 in NULL,60? Ora iHH è valido solo per il grafico PERIOD_H1, e se il grafico corrente NON è l'H1, allora High[iHH] è fasullo.