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

 
ara66676:

Per favore aiutatemi, non riesco a trovare una risposta a una semplice domanda.

intTimeSeconds(,,,,,)Restituisce il numero di secondi trascorsi dall'inizio del minuto del tempo specificato.

Se inserisco il tempo di apertura della barra nella funzione

TimeSeconds(iTime(NULL,PERIOD_M5,0))

come posso sapere che mancano 10 secondi alla chiusura della barra?

Bene, sottraete il tempo trascorso dal numero di secondi nel periodo...

PeriodSeconds(PERIOD_M5) - TimeSeconds(iTime(_Symbol, PERIOD_M5, 0));



 
AlexeyVik:

Perché bisogna leggere la documentazione fino in fondo. E c'è un esempio in esso

Grazie! Nell'esempio questo"ArrayResize" mi ha incasinato la testa. :)

Nella documentazione, penso che queste parentesi "array[]" non siano necessarie perché si può capire dalla parola stessa che si tratta di un array. :)

int  ArrayInitialize( 
   int     array,     // инициализируемый массив 
   int     value        // значение, которое будет установлено 
   );
 
AlexeyVik:

Quindi sottrarre il tempo trascorso dal numero di secondi in un periodo...



Grazie mille, uso mql4 da cinque anni e non sapevo ci fosse una tale funzione, grazie ancora ))

Ahimè, non è servito, al quinto questo controllo non funziona...((

 
if(id==CHARTEVENT_MOUSE_MOVE)
                                       {
                                       // получ и преобраз координ мыши
                                       ChartXYToTimePrice(0,lparam,dparam,huin,timeVline,priceVline);
                                       // переместить нa них линию
                                       ObjectSet(stockname+"timeVline",OBJPROP_TIME1,timeVline);                                     
                                              
                                        } 
Questo pezzo. su un grafico reale, dove l'indicatore viene eseguito da zero, funziona come dovrebbe.
Non riesco a capire cosa c'è di sbagliato, ma se eseguo l'indicatore nel tester, la linea non si muove dopo il mouse.
Non so anche cosa fa la variabile che ho chiamato huin?
 
ara66676:

Grazie mille, uso mql4 da cinque anni e non sapevo che ci fosse una tale funzione, grazie ancora ))

Ahimè, non è servito, al quinto questo controllo non funziona...((

Quindi avresti dovuto specificare... Il principio è lo stesso.

TimeCurrent() - (datetime) SeriesInfoInteger(_Symbol, PERIOD_M5, SERIES_LASTBAR_DATE);


Potete anche usare CopyTime()...


No... Non è così.

(datetime) SeriesInfoInteger(_Symbol, PERIOD_M5, SERIES_LASTBAR_DATE) + PeriodSeconds(PERIOD_M5) - TimeCurrent():
 

GURUS TELL ME!!!! Perché un ordine di vendita non si apre ????

//+------------------------------------------------------------------+

//| ProjectName |

//| Copyright 2012, CompanyName |

//| http://www.companyname.net |

//+------------------------------------------------------------------+

#proprietà rigorosa

//+------------------------------------------------------------------+

//| Funzione di inizializzazione dell'esperto |

//+------------------------------------------------------------------+


ingresso doppio L=0,01;

input int TakeProfit = 150;

input int StopLoss = 150;

input int Magic = 0;

//+------------------------------------------------------------------+

int b=0;

int s=0;

//+------------------------------------------------------------------+

int OnInit()

{

ritorno(0);

}

//+------------------------------------------------------------------+

//| Funzione tick esperto |

//+------------------------------------------------------------------+

void OnTick()

{

//+------------------------------------------------------------------+

//| Aprire un ordine di acquisto

//+------------------------------------------------------------------+

se(b==0)

{

b=My_Fun_b();

}

//+------------------------------------------------------------------+

//| Aprire un ordine di vendita

//+------------------------------------------------------------------+

se(s==0)

{

doppio priceb=My_Fun_p();

Comment("Il prezzo dell'ordine di acquisto",priceb);

if(priceb==Bid) /*NON ESEGUITO PERCHÉ*/.

{

s=My_Fun_s(priceb);/*NON ESEGUITO, PERCHÉ//

}

}

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione esperto |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

{


}

//+------------------------------------------------------------------+

//| Funzione personalizzata per aprire il primo ordine (comprare) |

//+------------------------------------------------------------------+

int My_Fun_b()

{

b=OrderSend(_Symbol,0,0.01,Ask,0,0,",414,0,clrBlue);

ritorno(b);

}

//+------------------------------------------------------------------+

//| Funzione definita dall'utente per determinare il prezzo del primo ordine (comprare) |

//+------------------------------------------------------------------+

doppio My_Fun_p()

{

doppio pb=0;

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true)

se(OrderMagicNumber()==414)

{

pb=OrderOpenPrice();

}

ritorno(pb);

}

//+------------------------------------------------------------------+

//| Funzione personalizzata per aprire il primo ordine (vendere)

//+------------------------------------------------------------------+

int My_Fun_s(double priceb)

{

s=OrderSend(_Symbol,1,0.01,priceb,0,0,",0,0,0,clrRed);

ritorno(b);

}

//+------------------------------------------------------------------+


File:
test.mq4  2 kb
 
AlexeyVik:

Beh, avresti dovuto specificare... Il principio è lo stesso


Potete anche usare CopyTime()...


No... È un po' diverso.

Grazie, ha funzionato. Variante corretta:

(TimeCurrent() - (datetime) SeriesInfoInteger (NULL , PERIOD_M5 , SERIES_LASTBAR_DATE))>290

Grazie ancora, ora possiamo eliminare montagne di codice e usare questa linea!!! ))

 
ara66676:

Grazie, ha funzionato. Variante corretta:

(TimeCurrent() - (datetime) SeriesInfoInteger (NULL , PERIOD_M5 , SERIES_LASTBAR_DATE))>290

Grazie ancora, ora possiamo eliminare montagne di codice e usare questa linea!!! ))

Apparentemente non importava se era il tempo trascorso dall'apertura del bar o il tempo fino alla fine del bar. Questa variante darà esattamente il tempo trascorso dall'inizio della barra e non il tempo alla fine della barra.

E qual è il numero 290? Perché dobbiamo controllare più di 290?

 
AlexeyVik:

Apparentemente non importava se era il tempo trascorso dall'inizio della barra o il tempo alla fine della barra. Questa opzione darebbe esattamente il tempo trascorso dall'inizio della barra, non il tempo alla fine della barra.

Qual è il numero 290? Perché dobbiamo controllare più di 290?

IN QUESTO CASO, IL NUMERO 290 MOSTRA CHE SONO PASSATI PIÙ DI 290 SECONDI DALL'APERTURA DELLA BARRA. SCUSA PER LA DIDASCALIA, È BLOCCATA ))))
 

Errore di compilazione (2): Magic - identificatore non dichiarato

Per favore aiutatemi a correggere

bool CheckExists(int Type)
{
bool Result = True;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderType() == Type && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderOpenTime() >= Time[0])
Result = False;
for(i = 0; i < OrdersHistoryTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderType() == Type &&& OrderOpenTime() >= Time[0]
&& OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
Result = False;
}

return(Result);
}

Motivazione: