Come codificare? - pagina 280

 

Certamente possono verificarsi problemi in conti reali che non si presentano in demo o in strategy tester, ma di solito non sono ricorrenti e sono poco frequenti. Non ho mai visto o sentito parlare di questo.

Dalla tua spiegazione, non posso determinare quanti trade sono aperti quando il problema si verifica. Se l'errore si verifica senza operazioni aperte, questo è un mistero. Se si verifica con diciamo 5 compravendite aperte, probabilmente ha qualcosa a che fare con il problema.

ERR_TRADE_DISABLED 133 Il commercio è disabilitato. Tutti i tentativi di trading devono essere fermati.

La documentazione di questo errore sembrerebbe indicare che qualcosa non va nel modo in cui l'EA piazza il trade. Ma dato che entrambi gli EA stanno usando la stessa logica OrderSend(), mi chiedo se abbia qualcosa a che fare con il fatto che hai 2 EA in esecuzione. Normalmente qualsiasi problema di contenimento causa un "Trade Context Busy" (146) e qualsiasi problema di conto causerebbe un errore "Insufficient Funds" (134). Varrebbe la pena provare ad eseguire un solo EA alla volta e vedere se questo fa la differenza.

 

Avasys

Può sembrare stupido, ma hai compilato l'EA, giusto?

Dopo la compilazione, dovrebbe esserci un file ex4 nella cartella Experts.

 
michaelB:
Può sembrare stupido, ma hai compilato l'EA, giusto? Dopo la compilazione, dovrebbe esserci un file ex4 nella cartella Experts.

Questo è quello che ho bisogno di sapere

Ho incollato il file mq4 nella cartella esperti, ma quando ho riavviato MT4 non ha creato il file ex4 nella cartella esperti,

quindi ho bisogno di controllare il codice se ha un errore

 

Come cambiare il colore di IndicatorShortName

Gentili Signori

Come posso aggiungere nel codice il mio colore personale per questa linea

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+", "+SlowEma+", "+SignalSMMA+")");

per cambiare il colore delle piccole informazioni che ho nella finestra separata dell'indicatore nell'angolo in alto a sinistra?

Pucio

 

QUALCUNO PUÒ DIRMI COSA C'È DI SBAGLIATO IN QUESTO CODICE?

C'È QUALCHE ERRORE, PERCHÉ NON CREA IL FILE EX4 QUANDO INCOLLO IL FILE MQ4 NELLA CARTELLA EXPERTS

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

//| semplice EA.mq4 |

//| Copyright © 2011, luktom.biz ||

//| www.luktom.biz/en |

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

#property copyright "Copyright © 2011, luktom.biz."

#property link "http://www.luktom.biz"

extern double stopLoss = 300.0;

extern double takeProfit = 500.0;

extern string Begin = "2: 00";

extern string End = "10: 00";

extern double distance = 60;

bool isECN = true;

bool cond = false;

bool cond2 = false;

double low;

doppio alto;

extern double lots = 0.1;

int magic = 1232344524285020;

int slippage = 1;

string comment = "";

int ticket;

int short = 0;

long int = 0;

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

//| funzione di inizializzazione esperto |

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

int init()

{

//----

//----

(0) ritorno;

}

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

//| funzione di deinizializzazione esperto |

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

int deinit ()

{

//----

Stampa (countOrders (magic, OP_BUY));

//----

(0) return;

}

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

//| funzione di inizio esperto |

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

int start()

{

Stampa (ContoValuta ());

//----

if (isGoodTime (Inizio, Fine))

{

short = 0;

long = 0;

se (! cond)

{

low = Bid;

high = Ask;

}

cond = true;

se (Bid < low) low = Bid;

se (Ask > high) high = Ask;

}

se ((alto-basso) * 1000 > distanza)

{

cond2 = true;

}

if (! isGoodTime (Begin, End))

{

cond = false;

}

if (! isGoodTime (Inizio, Fine) & & cond2)

{

se (countOrders (magic, OP_SELL) == 0)

{

se (Bid " = (CRL-0.0005) & & short == 0)

{

short + +;

se (isECN == false)

{

OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic);

}

se (isECN)

{

ticket = OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0);

}

}

}

if (countOrders (magic, OP_BUY) == 0)

{

if ((Ask-high) > = 0.005 & & long = = 0)

{

long + +;

se (isECN == false)

{

OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic);

}

se (isECN)

{

ticket = OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0);

}

}

}

}

//----

(0) ritorno;

}

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

bool isGoodTime (stringa, stringa, Inizio, Fine) {

if (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime () (End)) {

return (true);

}

return (false);

}

int countOrders (int, int oMagic oType) {

int count = 0;

for (int i = 0; i < OrdersTotal (); i ++) {

if (OrderSelect (i, SELECT_BY_POS)) {

if (OrderMagicNumber () == oMagic) {

se (OrderSymbol () = i = Symbol ()) {

se (OrderType () == oType || oType < 0) {

conteggio ++;

}

}

}

}

}

return (count);

}

double sltpValue (double, int w1 w2)

{

se (w2 = = 0)

ritorno (0);

return (NormalizeDouble (w1, Digits));

}

 
Avasys:
QUALCUNO PUÒ DIRMI COSA C'È DI SBAGLIATO IN QUESTO CODICE?

C'È QUALCHE ERRORE, PERCHÉ NON CREA IL FILE EX4 QUANDO INCOLLO IL FILE MQ4 NELLA CARTELLA EXPERTS

Puoi dirci dove hai preso questo ea?

Sembra che l'ea sia confuso. Per esempio nella linea 129 dove hai la definizione della funzione isGoodTime vediamo:

bool isGoodTime (string, string, Begin, End)

dovrebbe essere:

bool isGoodTime (string Begin, string End)

Ci sono molti errori come questo in ea. Sembra che il codice sia incompleto, o protetto da un cambiamento di codice come questo e questo rende questa fonte inutile.

 
Kalenzo:
Puoi dirci dove hai preso questo ea?

Sembra che la ea sia confusa. Per esempio nella linea 129 dove avete la definizione della funzione isGoodTime vediamo:

bool isGoodTime (string, string, Begin, End)

dovrebbe essere:

bool isGoodTime (string Begin, string End)

Ci sono molti errori come questo nell'ea. Sembra che il codice sia incompleto, o protetto da un cambiamento di codice come questo e questo rende questa fonte inutile.

[lang=pl]Sono un autore. Ho allegato il file mq4 per Avasys. Non chi cambiare nel codice funzione isGoodTime. Nel mio terminale funziona. Avasys perché sei così nervoso?

Se hai problemi contattami invece di parlare di questo sul forum[/lang].

File:
 
g.pociejewski:
[Sono un autore. Allego il file mq4 per Avasys. Non chi cambiare nel codice funzione isGoodTime. Nel mio terminale funziona. Avasys perché sei così nervoso? Se hai problemi contattami invece di parlarne sul forum[/lang].

Non sono nervoso, non sono riuscito a trovarti sul forum

questo EA funziona bene ma fa ancora più scambi al giorno. Quindi la mia preoccupazione era di chiedere all'EA di fare un solo trade al giorno

 
CodeMeister:
Certamente possono verificarsi problemi in conti reali che non appaiono in demo o in strategy tester, ma di solito non sono ricorrenti e sono poco frequenti. Non ho mai visto o sentito parlare di questo.

Dalla tua spiegazione, non posso determinare quanti trade sono aperti quando il problema si verifica. Se l'errore si verifica senza operazioni aperte, questo è un mistero. Se si verifica con diciamo 5 compravendite aperte, probabilmente ha qualcosa a che fare con il problema.

ERR_TRADE_DISABLED 133 Il commercio è disabilitato. Tutti i tentativi di trading devono essere fermati.

La documentazione di questo errore sembrerebbe indicare che qualcosa non va nel modo in cui l'EA piazza il trade. Ma dato che entrambi gli EA stanno usando la stessa logica OrderSend(), mi chiedo se abbia qualcosa a che fare con il fatto che hai 2 EA in esecuzione. Normalmente qualsiasi problema di contenimento causa un "Trade Context Busy" (146) e qualsiasi problema di conto causerebbe un errore "Insufficient Funds" (134). Varrebbe la pena provare ad eseguire un solo EA alla volta e vedere se questo fa la differenza.

L'EA che sta avendo problemi apre solo un trade alla volta. Nessun altro trade è stato aperto quando si sono verificati gli errori. Proverò ad eseguire un solo EA e vedere se questo aiuta. Grazie per il consiglio.

 

Come leggere un'etichetta MT4

Ciao a tutti,

Ho modificato un indicatore e ho creato un oggetto OBJ_LABEL con dei valori in modo che il mio EA possa prendere i valori in OBJ_LABEL. Questi valori sono punti di prezzo e non posso creare un altro buffer nell'indicatore per tenerli, quindi li ho semplicemente messi in queste etichette. Sembra una buona soluzione, MA, non riesco a capire come LEGGERE un'etichetta in MT4 nel mio EA! Uso la funzione GETOBJECT, ma restituisce solo alcune proprietà e il valore del testo di un'etichetta o di un oggetto di testo non è uno di questi!

Qualcuno può aiutarmi?

Grazie!

Motivazione: