[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 106
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
Gente, aiuto: ho una condizione nel mio EA che è quella di aprire una posizione di acquisto solo se il minimo della candela precedente è sotto tutti i minimi delle 40 candele precedenti. La domanda: come implementare questa enumerazione dei minimi della candela precedente e scoprire se il minimo della candela precedente era sotto il minimo della candela precedente? Vi ringrazio in anticipo.
Ai grazie!)
Mmm... Ecco il problema... I dati dovrebbero essere aggiornati ad ogni nuovo tick e solo per le ultime 30 barre... Conservo i dati per qualche motivo
Aiutatemi a trovare un errore!
Sto scrivendo un EA basato sulla strategia "Black MACD":
Coppia di valute: qualsiasi
Periodo di tempo: 15 e più.
Indicatori: EMA(3) EMA(18), RSI(14), MACD(12,26,9)
Rimuovi la linea di segnale dell'indicatore MACD, tutti gli indicatori sono applicati all'indicatore Close price.
Segnale di entrata in acquisto: EMA(3) incrocia EMA(18) dal basso verso l'alto, aspetta che il MACD mostri un lato positivo. Se RSI(14) è sopra il livello 50, allora compra. Lo stop-loss è fissato all'ultimo minimo locale. Esci dal trade invertendo il crossover EMA, o usa il tuo approccio personale.
Segnale di vendita: Situazione inversa: incrocio di EMA(3) EMA(18) verso il basso, aspettare che il MACD sia negativo. Se RSI(14) è inferiore a 50, allora compra. Lo stop-loss è impostato sull'ultimo massimo.
Quando si compila il codice dice che manca una parentesi. Dopo una lunga ricerca mi sembrava di aver trovato dove dovrebbe essere, ma dopo aver risolto l'errore ho avuto altri 20-30 nuovi bug. Per favore, consigliatemi dove l'ho perso. ))) Il codice è nel file allegato.
BlackvMACD.mq4 (5,21 KB) cancellare
Leggi: https://book.mql4.com/ru/variables/arrays . Si scopre che posso organizzare un array bidimensionale per tre coppie: doppio Mas_d[3][2] = {1, 0, 2, 0, 3,0};
tenendo presente che:
il valore di Mas_d[1][1] corrisponde ad esempio alla coppia AUDCAD, e Mas_d[1][2] è il valore di questa coppia;
il valore di Mas_d[2][1] corrisponde per esempio alla coppia AUDCHF e Mas_d[2][2] è il valore di questa coppia;
il valore di Mas_d[3][1] corrisponde per esempio a AUDJPY, e Mas_d[3][2] è il valore di questa coppia,
gli elementi della matrice mantengono i loro valori tra un tick e l'altro. E poi sarò in grado di cambiare i valori degli elementi dell'array secondo il criterio di cui ho bisogno. Ho capito bene cosa intende? :)
Sì. L'approccio può non essere il migliore, ma ognuno lo sceglie da solo. E poi, se necessario, modernizzarlo e ottimizzarlo! :))
Sono in procinto di modernizzare il mio approccio. Non è conveniente in alcuni casi! :D
Sì. L'approccio può non essere il migliore, ma ognuno lo sceglie per sé. E poi, se necessario, modernizzarlo e ottimizzarlo! :))
Sono in procinto di modernizzare il mio approccio. Non è conveniente in alcuni casi! :D
Sono un principiante e ho provato a scrivere un Expert Advisor di prova, ma ho un errore durante la compilazione " \fine del programma' - parentesi finale '}' atteso C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" So che ho scritto male, potreste dirmi dove ho sbagliato?
//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"
doppio StopLoss=30;
doppio TakeProfit=100;
doppio Lotti=0,1;
ritorno(0);
int start()
{
se(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
se(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
ritorno(0);
{
Sono un principiante e ho provato a scrivere un Expert Advisor di prova, ma quando lo compilo ottengo l'errore "\fine del programma' - parentesi finale '}' atteso C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" So che ho scritto male, potreste dirmi dove si trova l'errore?
//+------------------------------------------------------------------+
//| trsi01.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"
doppio StopLoss=30;
doppio TakeProfit=100;
doppio Lotti=0,1;
ritorno(0);
int start()
{
se(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point)
{
se(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point);
{
ritorno(0);
{
L'errore è che non hai letto il manuale da cima a fondo. Se l'hai aperto.
Ma ovviamente ti sei perso questa sezione: operatore condizionale if - else.
Sarebbe meglio leggere il libro da cima a fondo.
Grazie, lo terrò presente :). Potete dirmi, per favore, quale stop-loss minimo ha una specifica coppia di valute? Per esempio EURAUD - non puoi impostare uno stop loss inferiore a 100 pips per EURAUD, e per gli altri?
https://book.mql4.com/ru/appendix/marketinfo
Come si forma un numero binario, per esempio di 7 cifre? E come può poi (per comodità) essere convertito in un numero decimale?