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

 
wolf05632:

Come fermare l'esecuzione dell'indicatore ...se proc_zahlest>100


int start()
{if(proc_zahlest>100)return(0);
...
return(0);}
 
wolf05632:

... E un'altra domanda: come dovrebbe essere la coordinata temporale OBJ_TEXT, in modo che il testo sia a DESTRA della candela zero?

datetime t=Time[0]+Shift*Period()*60;//Shift -- положительное целое число.
 
granit77:
Spostato:

eurodollaro1981 09.09.2011 10:37
Salve, potreste dirmi come prescrivere in mt4, di comprare un ordine con stoploss preimpostato e take profit premendo un solo tasto?


Due chiavi - è molto? Se -- no, si scrive uno script appropriato la cui esecuzione è impostata sul "tasto di scelta rapida".

Terminale --> Navigatore --> Script --> Il tuo script --> Click destro --> Imposta tasto di scelta rapida.

 

Roger:

Xaoss1990:

Roger:
Questa non è la parte del codice dove potrebbe esserci un errore.
Em.... e il resto del codice è il calcolo dei valori ( POINT_BUY_M15, POINT_BUY_H, POINT_BUY_H4, POINT_SELL_M15, POINT_SELL_H, POINT_SELL_H4 ) per fare trade, funziona correttamente... ho controllato... è semplice lì....
Se l'errore fosse qui, il log direbbe "Stop not set", ma non è così.

L'errore sta esattamente in quel codice. Chiude BUY, poi seleziona un ordine che non esiste più e chiude SELL, che non è mai esistito. Credo di averci mostrato l'errore. Non sarà difficile da capire.

Ho iniziato a studiare MQL in un libro di testo. Ci sono abbastanza esempi e sono tutti costruiti con intelligenza. Alcune delle costruzioni usate in quegli esempi le uso ancora nei miei sviluppi.

 
MaxZ:

L'errore sta esattamente in quel codice. Chiude BUY, poi seleziona un ordine che non esiste più e chiude SELL, che non è mai esistito. Credo di aver mostrato l'errore. Non sarà difficile da capire.

Ho iniziato a studiare MQL in un libro di testo. Ci sono abbastanza esempi e sono tutti costruiti con intelligenza. Sto ancora usando alcuni di quegli esempi nei miei sviluppi.


D'accordo. Raccomandato:
datetime OrderCloseTime( )
Restituisce l'orario di chiusura dell'ordine selezionato. Solo gli ordini chiusi hanno un tempo di chiusura che non è 0. Gli ordini aperti o in sospeso hanno un tempo di chiusura pari a 0.
L'ordine deve essere preselezionato usando OrderSelect().
 
Roll:


Ugh... Grazie!
 

Ragazzi, aiutatemi, mi sto perdendo. Sto facendo un indicatore che voglio emettere come oggetti di testo le informazioni di vari altri indicatori da diversi timeframe. Per esempio ADX. Faccio tre iADX:

 f0 = iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_MINUSDI,0);
 f1 = iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_MINUSDI,0); 
 f2 = iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_MINUSDI,0); 

Ho testato su H4, solo un ADX, che è su H4, gli altri due danno un valore costante. Aiuto per favore.

 
vitali_yv:

Ragazzi, aiutatemi, mi sto perdendo. Sto facendo un indicatore che voglio emettere come oggetti di testo le informazioni di vari altri indicatori da diversi timeframe. Per esempio ADX. Faccio tre iADX:

Ho testato su H4, solo un ADX, che è su H4, gli altri due danno un valore costante. Aiuto per favore.


Prova su M30 - se i periodi sono esplicitamente prescritti nel codice, tutto dovrebbe funzionare.
 
vitali_yv:

Ragazzi, aiutatemi, mi sto perdendo. Sto facendo un indicatore che voglio emettere come oggetti di testo le informazioni di vari altri indicatori da diversi timeframe. Per esempio ADX. Faccio tre iADX:

Ho testato su H4, solo un ADX, che è su H4, gli altri due danno un valore costante. Per favore, aiutatemi.

Ho la sensazione che non cambierò i miei valori.

Oppure stai emettendo in modo errato, cosa che solo i signori telepati possono sapere con certezza...

 
MaxZ:

L'errore sta esattamente in quel codice. Chiude BUY, poi seleziona un ordine che non esiste più e chiude SELL, che non è mai esistito. Credo di aver mostrato l'errore. Questo non può essere difficile da capire.

Prima di chiudere un ordine, l'EA controlla il numero magico dell'ordine ed è diverso per gli ordini di acquisto e di vendita. Quindi, uno stesso ordine non può essere chiuso sia come Acquisto che come Vendita.

Ecco il codice:

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ BUY-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)
{
if (POINT_BUY_M15 < Strgh_UP_M15 || POINT_BUY_H1 < Strgh_UP_H1 || POINT_BUY_H4 < Strgh_UP_H4)
{
close = 1;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Bid, 5, Yellow);
}

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ SELL-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (OrdersTotal() == 1 && Magic == 222 && OrderType( ) == 1)
{
if (POINT_SELL_M15 < Strgh_DOWN_M15 || POINT_SELL_H1 < Strgh_DOWN_H1 || POINT_SELL_H4 < Strgh_DOWN_H4)
{
close = 1;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Ask, 5, Red);
}

Motivazione: