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

 
Roman.:


Scusa, non ci avevo fatto caso... :-)))

Ho controllato diverse volte - nessun errore, tutto rigorosamente secondo le formule.

A quanto pare, è necessario dividere il prodotto in parti e poi confrontarle... Per saperne di più - qui.

Ci sono stato. Interessante. Ho un'idea. Scriverò nel thread sull'argomento.

 
MaxZ:

Hai copiato tutto il codice o solo quello che c'era nella funzione start()? È importante!

Ti sei sbagliato! :)) Per esempio, lo zig-zag non ha tutti gli elementi del buffer riempiti. Inoltre, non è necessario riempire tutti gli elementi del buffer alle icone.


La copia sembra essere completa...

Strano! Se scrivessi un codice come questo

buffer[1]=open[1];

buffer[3]=open[3];

non succede niente sul grafico

 
wolf05632:


L'ho copiato completamente...

Strano! Se scrivessi un codice come questo

buffer[1]=open[1];

buffer[3]=open[3];

non succede niente sul grafico


In questo caso bisogna guardare tutto il codice.
 
wolf05632:


La copia sembra essere completa...

Strano! Se scrivessi un codice come questo

buffer[1]=open[1];

buffer[3]=open[3];

non succede niente sul grafico

In questo caso dovreste cambiare

SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии

a

SetIndexStyle (0, DRAW_SECTION);

Altrimenti verranno disegnate linee a metà, o le linee salteranno da zero o in alto sul grafico e voleranno di nuovo a zero o in alto (a seconda del valore che si dà agli elementi saltati nel buffer)! :D

Quindi il mio codice ha funzionato per te alla fine?

 

Grazie! Proverò di nuovo... Sì, funziona, grazie! Non mi è chiaro il significato di questa frase:

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);
 
wolf05632:

Grazie! Proverò di nuovo... Sì, funziona, grazie! Non capisco un po' il significato di questa linea:

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

Lasciatemi spiegare.

Applichiamo l'indicatore a un grafico. Prima esegue la funzione init(), viene eseguita.

Poi viene eseguita la funzione start(). Poiché nessuna delle barre è stata ancora calcolata, la funzione restituirà zero alla variabile Counted_bars.

IndicatorCounted(); // Количество просчитанных баров

restituirà zero.

Significa che la condizione

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

non sarà soddisfatto, e l'indicatore calcolerà tutte le barre del simbolo a cui è stato applicato.

Dopo il calcolo, l'esecuzione della funzione start() sarà terminata e l'indicatore aspetterà che arrivi un nuovo tick.

Quando arriva un nuovo tick, la funzione start() viene eseguita di nuovo. Nella variabile Counted_bars, la funzione

IndicatorCounted(); // Количество просчитанных баров

restituirà il numero di barre contate.

Questo significa che la condizione

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

può già essere soddisfatta, cioè, questa condizione sarà soddisfatta quando non abbiamo bisogno di una barra e vogliamo saltarla nel conteggio della funzione start().

 

Buona sera. Ho due domande:

1. Vorrei chiedere se c'è qualcuno su questo forum che sta sviluppando una strategia basata sull'indicatore Ishimoku e usa timeframe inferiori a un'ora, per esempio 5 o 15 minuti?

2. Terekhov A. Ishimoku Indicator.djvu book contiene il capitolo "Ishimoku Indicator and Japanese Candlesticks" dove è scritto che l'indicatore dovrebbe confermare le configurazioni delle candele. Quindi, queste configurazioni di candele devono essere presenti mentre l'indicatore dà un segnale o ci possono essere alcune barre tra questi due eventi? Cioè, attraversando tenkan e kinjun e nello stesso momento ci dovrebbe essere un "martello" o non è obbligatorio?

 

Ciao a tutti, sono un principiante e ho una domanda - se apro un ordine secondo questo schema

extern bool Buy = true;

extern double PriceBuy = 0;

int start()
{
if (Buy)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

return;
}
Cosa devo specificare sotto i punti interrogativi per assegnare alla variabile PriceBuy il valore del prezzo di acquisto dell'ordine? Lo scopo è di assegnare questo valore una volta sola e non cambierà mentre il programma procede.

E un'altra - Come cambiare programmaticamente lo stoploss di un ordine già aperto?



 
OTPOK:

Ciao a tutti, sono un principiante e ho una domanda - se apro un ordine secondo questo schema

extern bool Buy = true;

extern double PriceBuy = 0;

int start()
{
se (Acquista)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

ritorno;
}
Cosa devo specificare sotto i punti interrogativi per assegnare il valore del prezzo di acquisto dell'ordine alla variabile PriceBuy? Lo scopo è di assegnare questo valore una volta sola e non cambierà mentre il programma procede.

Un'altra domanda - come cambiare programmaticamente lo stoploss in un ordine aperto?




extern bool Buy = true;
extern double PriceBuy = 0; 
int start() 
{
   if(Buy) 
   {
     int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        PriceBuy=OrderOpenPrice();
   }
   return(0); 
}
 
OTPOK:


Cosa dobbiamo specificare sotto i punti interrogativi per assegnare la variabile priceBuy al valore del prezzo di acquisto dell'ordine? Lo scopo è di assegnare questo valore una volta sola e non cambierà mentre il programma procede.

E un'altra cosa: come posso cambiare lo stoploss di un ordine già aperto in modo programmatico?




Buon pomeriggio. Capisco che non avete mai assegnato valori alle variabili. È molto facile da fare.

PriceBuy=Ask

E devi cambiare lo stoploss usando la funzione OrderModifity().

Usate l'aiuto di MetaEditor.

Addio.