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?
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?
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 ))))
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...
Perché bisogna leggere la documentazione fino in fondo. E c'è un esempio in esso
Nella documentazione, penso che queste parentesi "array[]" non siano necessarie perché si può capire dalla parola stessa che si tratta di un array. :)
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...((
Non so anche cosa fa la variabile che ho chiamato huin?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.
Potete anche usare CopyTime()...
No... Non è così.
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);
}
//+------------------------------------------------------------------+
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!!! ))
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?
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?
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);
}