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
Eccellente, grazie!
Amico, array e funzioni, non sono il mio genere.
Aiuto per EA
Voglio fare quanto segue:
Usare i frame M15 e aprire durante questo intervallo due ordini al massimo confrontando il prezzo attuale con il precedente M15 close(close[1]). Tuttavia, non so come scrivere il codice per questo dato che voglio che questa procedura abbia luogo ogni successivo frame M15. Come mantenere le giuste variabili per il conteggio di 2 ordini in massimo ogni M15 dato che la funzione di inizio si esegue sempre da sola?
Grazie
Ho bisogno di aiuto con uno script per aprire gli ordini in sospeso.
So che ci sono molti script qui che aprono e chiudono gli ordini, ma non riesco a trovarne uno che apra gli ordini in sospeso.
Ho bisogno di 2 script, 1 Sellstop e 1 Buystop.
Vorrei che il Buystop aprisse un ordine Buystop 15 pips sopra il pivot giornaliero e che il SellStop aprisse 15 pips sotto il pivot giornaliero.
Ci ho giocato e ho ottenuto il codice qui sotto per un SellStop, ma non sono un codificatore e non funziona. Immagino di essermi lasciato sfuggire qualcosa.
Qualcuno può aiutarmi con questo, per favore.
PS. non importa, ho capito. Ho dovuto cambiare il mio prezzo di offerta al PVTGreen. Stavo ottenendo un errore 130..
Ora funziona...
Ok, un altro problema, qualcuno può dirmi come cambiare il tempo di scadenza da 24 ore dopo alle 22:00 dello stesso giorno.
//| script "send pending order with expiration data" |
//+------------------------------------------------------------------+
int start()
{
int ticket,expiration;
double point;
double PVTYellow = iCustom(NULL, 0, "pivot_alllevels", 0, 0, 0);
double PVTBlue = iCustom(NULL, 0, "pivot_alllevels", 0, 1, 0);
double PVTGreen = iCustom(NULL, 0, "pivot_alllevels", 0, 2, 0);
double PVTRed = iCustom(NULL, 0, "pivot_alllevels", 0, 3, 0);
double PVTMagenta = iCustom(NULL, 0, "pivot_alllevels", 0, 4, 0);
//----
point=MarketInfo(Symbol(),MODE_POINT);
expiration=TimeCurrent()+PERIOD_D1*60;
//----
while(true)
{
ticket = OrderSend(Symbol(),OP_SELLSTOP, 0.10, PVTGreen-15*Point, 3, PVTGreen+20*Point, PVTGreen-20*Point, 0,0,expiration,Red);
if(ticket<=0) Print("Error = ",GetLastError());
else { Print("ticket = ",ticket); break; }
//---- 10 seconds wait
Sleep(10000);
}
//----
return(0);
}
//+------------------------------------------------------------------+Per rendere la scadenza 22:00 potresti fare così...
int iHour = TimeHour(TimeCurrent());
int iMinute = TimeMinute(TimeCurrent());
int iDiff = 22%iHour;
datetime dtExpiryDate = (TimeCurrent()+(iDiff*60*60))-(iMinute*60);
Print(TimeToStr(dtExpiryDate));
Non c'è un controllo degli errori, quindi se pensate di averne bisogno assicuratevi di aggiungerlo.
Lux
Afferra i simboli di Market Watch
Ciao a tutti,
Mi stavo chiedendo se c'è un modo per afferrare tutti i simboli disponibili in market watch per il monitoraggio invece di alimentare manualmente l'EA?
in altre parole voglio che il mio EA passi attraverso qualsiasi simbolo che è disponibile nella finestra di market watch e li monitorizzi per un certo criterio.
qualsiasi aiuto è molto apprezzato.
Aiutatemi - Saldo del conto domenica
Ciao,
Sto cercando da ieri di armeggiare una cache del mio tutta la settimana da quando l'Account Balance Sunday (market success Opening) rivela.
Ho bisogno di portare ad eseguire correttamente un saldo del conto EA di domenica all'apertura del successo di mercato all'Equity Manager.
doppio usedacc = 0;
...
if (usedacc == 0 | | DayOfWeek () == 0) usedacc = Account Balance ();
...
Solo non funziona
Forse qualcuno può aiutarmi come meglio posso
Scusate il cattivo inglese
per favore cancella questo post - thx
come ottengo i dati dall'indicatore
Ciao a tutti,
ho bisogno per un EA dei valori FIBO100 e FIBO0 dall'indicatore. Come posso ottenerli?
Grazie
derumuro
Come si ottiene?
Mate ho colpito un problema simile
Scott
La comunicazione "inter script" (o comunicazione "inter indicatore") in MQL passa esclusivamente attraverso i buffer. Questo codice :
trendset = iCustom(NULL,0, "VGA HISTOGRAM~",0,0);
Significa che si vuole recuperare il valore della barra corrente dal primo buffer (pubblico) dell'indicatore "VGA HISTOGRAM~". Non potete recuperare i valori delle variabili dichiarate in altri indicatori (e non importa se sono dichiarate come esterne). Potreste provare con le variabili globali, ma le variabili globali sono difficili da usare e offrono più possibilità di commettere un errore che lavorare correttamente con loro o potete scrivere una DLL (metatrader usa una sola istanza di una DLL per grafico, indipendentemente dai parametri, quindi si può fare una sorta di "semaforo" che manterrebbe e restituirebbe i valori a seconda degli ID di qualsiasi tipo - questo garantirebbe la comunicazione tra codici mql ed eviterebbe letture errate delle variabili (le variabili globali per esempio possono essere facilmente scambiate e si possono leggere variabili da un grafico completamente diverso senza nemmeno saperlo))
saluti
Mladen
In realtà ho fatto un work around per questo che condividerò con voi.
Nel tuo indicatore crea una nuova funzione in modo che le cose non diventino confuse.
void PASSINFO() {
int trendcondtemp; //cambia questo con il nome che desideri, non importa, lascialo se sei pigro
if (Close[1] > Open[2] && Volume[1] < Volume[2]) trendcondtemp=1; //bullish - questo imposta solo un valore alla variabile usa il tuo codice
if (Close[1] < Open[2] && Volume[1] < Volume[2]) trendcondtemp=2; //bearish - stessa cosa, odore diverso
if (Volume[1] > Volume[2])trendcondtemp=3; //non succede un cazzo - meh
se (Symbol()=="USDCHF") GlobalVariableSet("TRENDSETUSDCHF ",trendcondtemp);
se (Simbolo()=="GBPUSD") GlobalVariableSet("TRENDSETGBPUSD",trendcondtemp);
se (Simbolo()=="EURUSD") GlobalVariableSet("TRENDSETEURUSD",trendcondtemp);
se (Simbolo()=="USDJPY") GlobalVariableSet("TRENDSETUSDJPY",trendcondtemp);
se (Simbolo()=="USDCAD") GlobalVariableSet("TRENDSETUSDCAD",trendcondtemp);
se (Simbolo()=="NZDUSD") GlobalVariableSet("TRENDSETNZDUSD",trendcondtemp);
se (Simbolo()=="AUDUSD") GlobalVariableSet("TRENDSETAUDUSD",trendcondtemp);
se (Simbolo()=="AUDNZD") GlobalVariableSet("TRENDSETAUDNZD",trendcondtemp);
se (Simbolo()=="AUDCAD") GlobalVariableSet("TRENDSETAUDCAD",trendcondtemp);
se (Simbolo()=="EURUSD") GlobalVariableSet("TRENDSETEURUSD",trendcondtemp);
se (Simbolo()=="AUDCHF") GlobalVariableSet("TRENDSETAUDCHF",trendcondtemp);
se (Simbolo()=="AUDJPY") GlobalVariableSet("TRENDSETAUDJPY",trendcondtemp);
se (Simbolo()=="CHFJPY") GlobalVariableSet("TRENDSETCHFJPY",trendcondtemp);
se (Simbolo()=="EURGBP") GlobalVariableSet("TRENDSETEURGBP",trendcondtemp);
se (Simbolo()=="EURAUD") GlobalVariableSet("TRENDSETEURAUD",trendcondtemp);
se (Simbolo()=="EURCHF") GlobalVariableSet("TRENDSETEURCHF",trendcondtemp);
se (Simbolo()=="EURJPY") GlobalVariableSet("TRENDSETEURJPY",trendcondtemp);
se (Simbolo()=="EURNZD") GlobalVariableSet("TRENDSETEURNZD",trendcondtemp);
se (Simbolo()=="GBPCHF") GlobalVariableSet("TRENDSETGBPCHF",trendcondtemp);
se (Simbolo()=="GBPAUD") GlobalVariableSet("TRENDSETGBPAUD",trendcondtemp);
se (Simbolo()=="GBPCAD") GlobalVariableSet("TRENDSETGBPCAD",trendcondtemp);
se (Simbolo()=="GBPJPY") GlobalVariableSet("TRENDSETGBPJPY",trendcondtemp);
if (Symbol()=="NZDJPY") GlobalVariableSet("TRENDSETNZDJPY",trendcondtemp);
//aggiungere petrolio/oro/sheckles/qualunque cosa si scambi dopo questo ho coperto tutto ciò che fa il mio broker
}
Ok, ora, poiché la sua valuta dipende dalla valuta, non c'è la possibilità che si incroci con un'altra valuta e che i valori si gonfino. Ora devi mettere questo nel tuo inizio / qualsiasi funzione prima di chiamare il valore.
int trendset;
if (Symbol()=="USDCHF") trendset= GlobalVariableGet("TRENDSETUSDCHF");
if (Symbol()=="GBPUSD") trendset= GlobalVariableGet("TRENDSETGBPUSD");
se (Symbol()=="EURUSD") trendset= GlobalVariableGet("TRENDSETEURUSD");
se (Symbol()=="USDJPY") trendset= GlobalVariableGet("TRENDSETUSDJPY");
se (Symbol()=="USDCAD") trendset= GlobalVariableGet("TRENDSETUSDCAD");
se (Symbol()=="NZDUSD") trendset= GlobalVariableGet("TRENDSETNZDUSD");
if (Symbol()=="AUDUSD") trendset= GlobalVariableGet("TRENDSETAUDUSD");
if (Symbol()=="AUDNZD") trendset= GlobalVariableGet("TRENDSETAUDNZD");
se (Symbol()=="AUDCAD") trendset= GlobalVariableGet("TRENDSETAUDCAD");
se (Symbol()=="EURUSD") trendset= GlobalVariableGet("TRENDSETEURUSD");
if (Symbol()=="AUDCHF") trendset= GlobalVariableGet("TRENDSETAUDCHF");
se (Symbol()=="AUDJPY") trendset= GlobalVariableGet("TRENDSETAUDJPY");
se (Symbol()=="CHFJPY") trendset= GlobalVariableGet("TRENDSETCHFJPY");
if (Symbol()=="EURGBP") trendset= GlobalVariableGet("TRENDSETEURGBP");
if (Symbol()=="EURAUD") trendset= GlobalVariableGet("TRENDSETEURAUD");
se (Symbol()=="EURCHF") trendset= GlobalVariableGet("TRENDSETEURCHF");
if (Symbol()=="EURJPY") trendset= GlobalVariableGet("TRENDSETEURJPY");
se (Symbol()=="EURNZD") trendset= GlobalVariableGet("TRENDSETEURNZD");
se (Symbol()=="GBPCHF") trendset= GlobalVariableGet("TRENDSETGBPCHF");
se (Symbol()=="GBPAUD") trendset= GlobalVariableGet("TRENDSETGBPAUD");
se (Symbol()=="GBPCAD") trendset= GlobalVariableGet("TRENDSETGBPCAD");
se (Symbol()=="GBPJPY") trendset= GlobalVariableGet("TRENDSETGBPJPY");
se (Symbol()=="NZDJPY") trendset= GlobalVariableGet("TRENDSETNZDJPY");
Nota bene!!! (probabilmente te ne sei già accorto) ma devi avere l'indicatore in funzione sulla tua valuta su cui il tuo ea sta funzionando perché i valori cambino, altrimenti otterrai solo la vecchia variabile che è stata memorizzata per settimane in mt4.