Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 514

 

Ciao, ho riscontrato questo problema: non riesco a far sì che l'EA faccia trading solo in due periodi di tempo. Come si fa? Potete dirmi per favore come fare? Il codice assomiglia a questo, ma accetta solo 1 periodo, ignora il secondo

extern string с = "Блок № 3";
extern int    Start_H1 = 0;
extern int    Start_M1 = 30;
extern int    End_H1   = 7;
extern int    End_M1   = 59;
extern int    Start_H2 = 12;
extern int    Start_M2 = 30;
extern int    End_H2   = 20;
extern int    End_M2   = 10;



if (((Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )) ||
    ((Hour()>=Start_H2 && Minute()>Start_M2) && (Hour()<=End_H2 && Minute()<=End_M2))) 
        {
         открытие ордеров
        }
 
Nikita Chernyshov:

Ciao, ho riscontrato questo problema: non riesco a far sì che l'EA faccia trading solo in due periodi di tempo. Come si fa? Puoi dirmi per favore come fare? Il codice assomiglia a questo, ma accetta solo 1 periodo, ignora il secondo

Sarebbe meglio convertire ore e minuti in tempo pieno e confrontare con l'ora corrente

   string startTime_1, startTime_2, endTime_1, endTime_2;
   StringConcatenate(startTime_1, Start_H1, ":", Start_M1);
   StringConcatenate(endTime_1, End_H1, ":", End_M1);
   StringConcatenate(startTime_2, Start_H2, ":", Start_M2);
   StringConcatenate(endTime_2, End_H2, ":", End_M2);
   datetime startHM_1, startHM_2, endHM_1, endHM_2;
   startHM_1 = StringToTime(startTime_1);
   endHM_1 = StringToTime(endTime_1);
   startHM_2 = StringToTime(startTime_2);
   endHM_2 = StringToTime(endTime_2);
   if((TimeCurrent() >= startHM_1 && TimeCurrent() <= endHM_1) || (TimeCurrent() >= startHM_2 && TimeCurrent() <= endHM_2))
 
Salve. Ci sono oggetti - triangoli con nomi: 321fa34, 321fa53, 321fa41. Come posso scoprire il prezzo minimo del triangolo più fresco? Il prezzo che si trova nelle proprietà nel mezzo.
 
YanSay:

Добрый день!

Прошу помочь со следующей проблемой:

1) После выполнения некоторых условий, открывается отложенный ордер:

Подскажите пожалуйста, что нужно дописать и куда, чтобы неоткрывшийся отложенный ордер был удален в том случае, если цена уже прошла стоп лосс(этого неоткрывшегося оредра).

Извините за глупый вопрос, заблудился в форумах пока искал ответ.

Заранее благодарю!

Identificatore

Descrizione

ORDINE_TIME_GTC

L'ordine rimarrà nella coda fino a quando non sarà rimosso

ORDINE_TIME_DAY

L'ordine sarà valido solo per il giorno di negoziazione corrente

ORDINE_TEMPO_SPECIFICATO

L'ordine sarà valido fino alla data di scadenza

GIORNO_SPECIFICATO_DELL'ORDINE

L'ordine sarà in vigore fino alle 23:59:59 del giorno di negoziazione corrente. Se questo tempo non è all'interno di una sessione di trading, la scadenza sarà all'ora di trading più vicina.


Questi sono solo i parametri per rimuovere un ordine pendente!

Per cancellare l'ordine è necessario monitorare il prezzo e quando raggiunge il prezzo di stop cancellare l'ordine - tutto questo deve essere scritto in un codice separato!

 

Cari signori,

per favore aiutatemi a trovare l'errore:

(Errori)

')' - fine inaspettata del programma

" - virgola prevista

" -semicolon previsto

'Trade_BY' - funzione non definita

'Trade_SELL' - funzione non definita

 

Per favore, consigliatemi!

Come posso usare lo script per cambiare le impostazioni (una variabile specifica) dell'indicatore sul grafico!

Se questo è possibile un pezzo di codice sarebbe auspicabile!!!

 
PolarSeaman:
Salve. Ci sono oggetti - triangoli con nomi: 321fa34, 321fa53, 321fa41. Come faccio a sapere il prezzo minimo del triangolo più fresco? Il prezzo che si trova nelle proprietà al centro.

1.

OBJPROP_CREATETIME

Tempo di creazione dell'oggetto

datetime r/o

2.

OBJPROP_PRICE

Prezzo coordinato

modificatore=numero del punto di ancoraggio

 
Nikita Chernyshov:

Ciao, ho riscontrato questo problema: non riesco a far sì che l'EA faccia trading solo in due periodi di tempo. Come si fa? Puoi dirmi per favore come fare? Il codice assomiglia a questo, ma accetta solo 1 punto, e ignora il secondo

Con questo approccio, entrambi i tempi saranno ignorati. Per esempio, l'ora corrente è 01:15. La condizione reggerà?

(Hour()>=Start_H1 && Minute()>Start_M1) && (Hour()<=End_H1 && Minute()<=End_M1 )

No, non lo farà. Dopo tutto, i minuti attuali sono 15, che sono meno dei 30 iniziali. Allo stesso modo con il secondo intervallo. È meglio convertire il tempo in minuti dall'inizio della giornata:

int nCurDayMinutes = Hour() * 60 + Minute();
int nStart1DayMinutes = Start_H1 * 60 + Start_M1;
int nEnd1DayMinutes = End_H1 * 60 + End_M1;
if (nCurDayMinutes >= nStart1DayMinutes && nCurDayMinutes < nEnd1DayMinutes)
{
   // внутри интервала
}
 
YanSay:

Buon pomeriggio!

Per favore, aiutatemi con il seguente problema:

1) Dopo che alcune condizioni sono soddisfatte, si apre un ordine pendente:

Per favore, ditemi cosa aggiungere e dove cancellare un ordine pendente se il prezzo ha già superato lo stop loss (di questo ordine pendente).

Scusa per la domanda stupida, mi sono perso nei forum mentre cercavo una risposta.

Mi sono perso nei forum mentre cercavo la risposta, grazie in anticipo!

Prima di tutto, non sappiamo se l'ordine è stato aperto, perché non c'è nessun controllo su questo. Quindi non ha senso controllare se lo Stop Loss o il Take Profit di un ordine che non è stato aperto.

 
Игорь:

Per favore, consigliatemi!

Come posso usare lo script per cambiare le impostazioni (una variabile specifica) dell'indicatore sul grafico!

Se questo è possibile un pezzo di codice sarebbe auspicabile!!!

Domanda molto strana. È come chiedere: "Come si fa a girare su uno sgabello con una lima?