[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 106

 
vovan-gogan:
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.
int TotalBars = 40; // Общее количество свечей по которым нужно осуществлять перебор
double max=0.0;
double min=100.0;
for(int n=0; n<TotalBars; n++)
  {
  if(High[n]>max) max=High[n];
  if(Low[n]<min) min=Low[n];
  }
MessageBox("Maximum="+max+" Minimum="+min);
 
langolier:

Ai grazie!)
 
langolier:

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
 
sergeev:

Aiutatemi a trovare un errore!


10
mamba5 18.08.2011 14:23

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.

File allegati:
BlackvMACD.mq4 (5,21 KB) cancellare
Corretti gli errori di compilazione. Non ho esaminato la correttezza dell'algoritmo di implementazione della strategia.
File:
 
first_may:


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

 
MaxZ:

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);
{

 
acoman:

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 per favore consigliare qual è lo stop loss minimo di una specifica coppia di valute? Per esempio EURAUD - non puoi mettere uno stop loss inferiore a 100 pips, e per gli altri?
 
first_may:
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

MODE_STOPLEVEL 14 Livello minimo consentito di stop loss/stake profit in pip
 

Come si forma un numero binario, per esempio di 7 cifre? E come può poi (per comodità) essere convertito in un numero decimale?

Motivazione: