Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 386
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Hmm... Non avevo pensato di cambiare le coordinate. Grazie per il suggerimento.
Allora ecco una domanda. C'è una condizione di punto di ingresso. L'ho implementato attraverso variabili statiche, in modo che non si azzeri ad ogni tick. Bene, in alcuni punti del grafico il robot disegna un punto di entrata dove non ci sono livelli orizzontali e, quindi, la loro intersezione con la MA. Eseguite il codice nel vostro tester e vedrete il problema. Su EURUSD. Forse questo problema deve essere implementato in un modo diverso? Non sono un professionista della programmazione.
Cioè, il modello è apparso, i livelli sono stati disegnati e il robot aspetta tre croci di uno dei livelli.
Cosa ne pensate?
Hmm... Non avevo pensato di cambiare le coordinate. Grazie per il suggerimento.
Allora ecco una domanda. C'è una condizione di punto di ingresso. L'ho implementato attraverso variabili statiche, in modo che non si azzeri ad ogni tick. Bene, in alcuni punti del grafico il robot disegna un punto di entrata dove non ci sono livelli orizzontali e, quindi, la loro intersezione con la MA. Eseguite il codice nel vostro tester e vedrete il problema. Su EURUSD. Forse questo problema deve essere implementato in un modo diverso? Non sono un professionista della programmazione.
Cioè, il modello è apparso, i livelli sono stati disegnati e il robot aspetta tre croci di uno dei livelli.
Cosa ne pensate?
Chi ne ha bisogno, se non le dispiace che lo dica? Guardate da dove il robot prende i valori e troverete un'altra soluzione al problema.
Help Two sta dando degli errori! Ho evidenziato gli errori in rosso, aiuto PLZ!
//+------------------------------------------------------------------+
//| Trailing Stop di Asyll.mq4 |
//| Copyright 2017, MetaQuotes Software Corp.
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#proprietà copyright "Alibek Asyll"
#proprietà link "https://www.mql4you.com"
extern int TralType = 0; // 0-Sar, 1-ATR, 2-HMA.
extern double SAR_Step = 0.02;
extern double SAR_Max = 0,2;
extern int ATR_Period = 14;
extern double ATR_K = 2.0;
extern inttern MMA_Period = 16;
extern int int MMA_Method = 3;
extern inttern MMA_Shift = 0;
datetime LBT;
//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//---
//---
ritorno(0);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'esperto |
//+------------------------------------------------------------------+
int deinit()
{
//---
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione tick esperto |
//+------------------------------------------------------------------+
int start()
{
bool error = false;
se (LBT!=Time[0] {
se (OrdiniTotali()>0) {
per (int i=o; i<OrdersTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
doppio SL = OrderStopLoss();
se (OrderType()==0) {
interruttore (TralType) {
caso 0: SL = iSAR(NULL,0,SAR_Step, SAR_Max,0);
pausa;
caso 1: SL = High[1] - iATR(NULL,0,ATR_Period,1)*ATR_K;
pausa;
caso 2: SL = iCustom(NULL,0, "VininI_HMA_sound&",HMA_Period, HMA_Method, 3, HMA_Shift,false,false,",1,0,0);
pausa;
}
se (SL<OrderStopLoss())
SL = OrderStopLoss();
}
se (OrderType()==1){
interruttore (TralType){
caso 0: SL = iSAR(NUll,0,SAR_Step, SAR_Max,0);
pausa;
caso 1: SL = Low[1] + iATR(NULL,0,ATR_Period,1)*ATR_K;
pausa;
caso 2: SL = iCustom(NULL,0, "VininI_HMA_sound&",HMA_Period, HMA_Method, 2, HMA_Shift,false,false,",1,0,0);
pausa;
}
se (SL>OrderStopLoss())
SL = OrderStopLoss();
}
se (SL!=OrderStopLoss()) {
if (!OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0))
errore = vero;
}
}
se (!errore)
LBT = Tempo[0];
}
ritorno();
}
//+-------------------------------------------------------------------+
Ha senso usare il pulsante SRC per inserire il codice. Riportare il testo degli errori. Rimuovere il testo per accelerare l'esperto:
Ci vuole tempo per chiamare queste funzioni - e sono vuote. E sarebbe più facile lavorare con il testo del programma senza di loro. Conta le parentesi graffe. Per rendere questo più facile, provate lo Styler nel menu Strumenti. Scartare le linee vuote.
Buona giornata a tutti.
Ho un'idea semplice che sto cercando di codificare e testare su un tester MT-4
Aprire gli ordini quando le seguenti condizioni sono presenti allo stesso tempo
1. All'apertura di una candela di un minuto
2 Al prezzo che voglio
3. Alla data desiderata
4. Il valore del prezzo deve coincidere strettamente con il valore del giorno.
Per esempio, il giorno 27 era una candela di un minuto con il prezzo di apertura 1,2414
Ho bisogno di aprire un ordine 1) sulla candela aperta 2) a 1,2414 3) ma il giorno successivo che segue il 27
Per esempio il 28 abbiamo avuto una candela a 1 minuto aperta a 1,2438.
Ho bisogno di aprire un ordine 1) sulla candela aperta 2) a 1,2438 3) MA IL GIORNO DOPO IL 28
Per esempio il 12 c'era una candela a 1 minuto aperta a 1,2451
Ho bisogno di aprire un ordine 1) sulla candela aperta 2) a 1,2451 3) MA IL GIORNO DOPO IL 12
Per realizzare questa idea ho iniziato a studiare un tema di array e ho creato due array unidimensionali, ma non funziona
Vi sarei molto grato se poteste correggere il mio codice per implementare l'idea di cui sopra
Sono lento a capire, quindi vi sarei molto grato se poteste scrivere il codice giusto, invece di spiegarlo a parole.
In questo modo lo capirò molto più velocemente.
Ecco il mio codice.
Questo codice ha lo scopo di spostare i livelli di segnale quando il prezzo si muove oltre il livello superiore o inferiore, ma non succede. Per favore, ditemi qual è l'errore.
Ho bisogno di aprire un ordine 1) all'apertura di una candela 2) a 1,2414 3) MA L'ULTIMO GIORNO DOPO IL 27
Ecco il mio codice.In primo luogo, non è ragionevole normalizzare un BID già normalizzato, a meno che l'istruttore non vi dica di
In secondo luogo, cosa otteniamo? Il 27, il prezzo è apparso e voi inserite urgentemente i dati nell'array, per attivarlo il 28? E se il 28 succede qualcosa di urgente? Stai mettendo dei dati in un array che è difficile da calcolare. I vostri dati dovrebbero essere calcolabili. Suggerisco di eseguire il debugging del tuo EA per gradi. 1) Determinare il prezzo richiesto e visualizzarlo utilizzando la funzione Alert(). Se sei sicuro che sia corretto, calcola e visualizza il prossimo... e così via fino alla fine. È troppo presto per scrivere tutto il codice in anticipo, perché dovrà essere modificato man mano che il debugging procede. Cosa ne pensate di questa tecnologia da semplice a complessa?
Diamo un'occhiata a ciò che è scritto qui. In primo luogo, le linee dovrebbero essere più corte. Si adatteranno meglio allo schermo e il compilatore lavorerà più velocemente.
Se il BID è più grande, bisogna fare qualcosa. Poi, se il BID è inferiore, bisogna fare la stessa cosa. Si può formulare più brevemente: se il prezzo è più o meno, allora...Nei commenti scrivi qualcosa sullo spostamento di qualcosa, ma tutto quello che fai è cancellare tutti gli oggetti. Le tue 10 linee sono sostituite da quattro.
Ma !!! Il segno OR dovrebbe essere usato da qualche altra parte, vero? Sembra che invece di azzerare questo OR, dovremmo creare nuovi oggetti qui. O ancora più facile - invece di cancellare gli oggetti, basta spostarli in una nuova posizione - sono solo 3 righe di codice. O l'istruttore richiede di più?
Da semplice a falso o viceversa?In primo luogo, normalizzare un BID già normalizzato non è consigliabile, a meno che l'insegnante non vi dica di
In secondo luogo, cosa abbiamo qui? Il 27 si verifica un prezzo e tu inserisci urgentemente i dati nell'array, in modo che funzioni il 28? E se ci fosse una situazione urgente il 28? Stai mettendo dei dati in un array che è difficile da calcolare. I vostri dati dovrebbero essere calcolabili. Suggerisco di eseguire il debugging del tuo EA per gradi. 1) Determinare il prezzo richiesto e visualizzarlo utilizzando la funzione Alert(). Se sei sicuro che sia corretto, calcola e visualizza il prossimo... e così via fino alla fine. È troppo presto per scrivere tutto il codice in anticipo, perché dovrà essere modificato man mano che il debugging procede. Cosa ne pensate di questa tecnologia da semplice a complessa?
Grazie mille per il suggerimento.
Ma mi sembra che nel tuo ragionamento tu stia dando per scontato che io stia cercando di scrivere un VERO EA.
Mi dispiace non averti detto che non è così.
Cerco di testare la presenza di qualche regolarità, correlazione tra i parametri di cui sopra, cioè, per confermare o rifiutare l'idea, che può essere la base per un TORKING Expert Advisor.
Perciò vi sarò grato se correggerete il mio codice, in modo che tutto sia conforme alla mia idea di cui sopra.
E i vostri commenti mi saranno ovviamente utili quando scriverò un Expert Advisor per il trading.
Grazie
Grazie mille per il suggerimento.
Ma per come la vedo io, il tuo ragionamento presuppone che io stia cercando di scrivere un VERO EA.
Mi dispiace non averti detto che non è così.
Cerco di testare la presenza di qualche regolarità, correlazione tra i parametri di cui sopra, cioè, per confermare o rifiutare l'idea, che può essere la base per un TORKING Expert Advisor.
Perciò vi sarò grato se correggerete il mio codice, in modo che tutto sia conforme alla mia idea di cui sopra.
I vostri commenti mi saranno ovviamente utili quando scriverò un Expert Advisor per il trading.
Grazie
Scusate l'intrusione. Ma... In che modo la logica del disegno delle linee dovrebbe essere diversa per un EA di trading e non?
Quando sei al lavoro, guardi l'orologio sulla tua mano in modo diverso da come lo guardi a casa?