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

 
Cari programmatori. Come principiante è difficile per me scrivere un algoritmo, posso modificarlo, quindi per favore aiutatemi. Te ne sarei molto, molto grato!!!
Un EA così semplice e di cui ha bisogno:

Se la condizione1 è soddisfatta, allora:
-controllare gli ordini di vendita aperti
-Controlla se ci sono ordini SELL aperti e chiudili.
controlla se ci sono ordini SELL aperti - se ci sono, chiudili.
-aprire l'ordine BUY

Lo stesso se la condizione 2 è soddisfatta, allora
-controllare se ci sono ordini BUY aperti
-se ce ne sono, chiudeteli
controlla se ci sono ordini BUY aperti - se ci sono, chiudili
-aprire un ordine SELL
+ analisi degli errori (non è la cosa principale, ma è possibile)
Questo è tutto per la coppia di valute corrente.

int start()                       
  {
   double M_0, M_1,               // Значение MAIN на 0 и 1 барах
          S_0, S_1;               // Значение SIGNAL на 0 и 1барах
//--------------------------------------------------------------------
                                  // Обращение к функции техн.индикат.
   M_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  0);// 0 бар
   M_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  1);// 1 бар
   S_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);// 0 бар
   S_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------------
                                  
   if( M_1 < S_1 && M_0 >= S_0 )  // УСЛОВИЕ 1: Зеленая пересекает красную снизу
     
   if( M_1 > S_1 && M_0 <= S_0 )  // УСЛОВИЕ 2: Зеленая пересекает красную сверху
     
//--------------------------------------------------------------------
   return;                            // Выход из start()
  }
 
Ciao, potresti dirmi se è possibile assegnare un valore a diverse variabili globali all'interno di una funzione, e dove dovrebbero essere dichiarate queste variabili in questo caso?
 
ideasforlife:
Cari programmatori. Come principiante è difficile per me scrivere un algoritmo, posso modificarlo, quindi per favore aiutatemi. Te ne sarei molto, molto grato!!!
Un EA così semplice e di cui ha bisogno:

Se la condizione1 è soddisfatta, allora:
-controllare gli ordini di vendita aperti
-Controlla se ci sono ordini SELL aperti e chiudili.
controlla se ci sono ordini SELL aperti - se ci sono, chiudili.
-aprire l'ordine BUY

Lo stesso se la condizione 2 è soddisfatta, allora
-controllare se ci sono ordini BUY aperti
-se ce ne sono, chiudeteli
controlla se ci sono ordini BUY aperti - se ci sono, chiudili
-aprire un ordine SELL
+ analisi degli errori (non è la cosa principale, ma è possibile)
Questo è tutto per la coppia di valute corrente.

Ci sono molti Expert Advisors su stocastico in CodeBase. Vedere e rifare
 
ideasforlife:
Cari programmatori. Come principiante è difficile per me scrivere l'algoritmo, posso modificarlo, quindi per favore aiutatemi. Te ne sarei molto, molto grato!!!
Un EA così semplice e di cui ha bisogno:

Se la condizione1 è soddisfatta, allora:
-controllare gli ordini di vendita aperti
-Controlla se ci sono ordini SELL aperti e chiudili.
controlla se ci sono ordini SELL aperti - se ci sono, chiudili.
-aprire l'ordine BUY

Lo stesso se la condizione 2 è soddisfatta, allora
-controllare se ci sono ordini BUY aperti
-se ce ne sono, chiudeteli
controlla se ci sono ordini BUY aperti - se ci sono, chiudili
-aprire un ordine SELL
+ analisi degli errori (non è la cosa principale, ma è possibile)
Questo è tutto per la coppia di valute attuale.

E ancora più facile sarebbe un esempio dal libro di testo: https://book.mql4.com/ru/samples/expert.

È così difficile leggere il libro di testo da cima a fondo?

 
ideasforlife:
Cari programmatori. Come principiante è difficile per me scrivere un algoritmo, posso modificarlo, quindi per favore aiutatemi. Te ne sarei molto, molto grato!!!
Un EA così semplice e di cui ha bisogno:

Se la condizione1 è soddisfatta, allora:
-controllare gli ordini di vendita aperti
-Controlla se ci sono ordini SELL aperti e chiudili.
controlla se ci sono ordini SELL aperti - se ci sono, chiudili.
-aprire l'ordine BUY

Lo stesso se la condizione 2 è soddisfatta, allora
-controllare se ci sono ordini BUY aperti
-se ce ne sono, chiudeteli
controlla se ci sono ordini BUY aperti - se ci sono, chiudili
-aprire un ordine SELL
+ analisi degli errori (non è la cosa principale, ma è possibile)
Questo è tutto per la coppia di valute corrente.


Soluzione pronta - in versione libro di testo, qui. Togliete tutto ciò che riguarda il MACD - qui e questo è tutto... :-Р

P.S. Anche i nomi delle variabili sono quasi gli stessi. Potete leggere il nostro tutorial, ha sia la descrizione che tutto il resto. :-Р

 
Roman.:


Soluzione pronta - in versione libro di testo, qui. Togliete tutto ciò che riguarda il MACD - qui e questo è tutto... :-Р

P.S. Anche i nomi delle variabili sono praticamente gli stessi. Leggete il libro di testo - c'è una descrizione e tutto il resto. :-Р

Prima io! :-P :-P
 
Code:

Salve, cari membri del forum.

Naturalmente, ho alcune domande da parte di un nuovo arrivato. Sto cercando di imparare mql4, dato che non ho mai sviluppato alcun programma prima, quindi le domande possono essere molto primitive. Ma non sono mai stato capace di farli da solo.

Ho deciso di "pasticciare" con la visualizzazione dei volumi disegnando una linea invece di un grafico a barre con qualche elaborazione. Il codice dovrebbe avere il seguente senso. Partendo dalla seconda barra che è nella stessa direzione della barra precedente (entrambe le barre sono al rialzo), il volume viene disegnato dalla seconda barra. Come risultato, ottengo una linea spezzata nella finestra dell'indicatore, che è effettivamente disegnata dalla seconda barra in su, ma non in tutti i casi per qualche motivo. La linea è interrotta perché le altre condizioni del suo disegno non sono affatto definite, è una cosa del futuro. Ma qui io stesso per capire perché la linea non è disegnata su ogni seconda barra verso l'alto, non posso. Per favore, aiutatemi.

Ecco il codice. Se avete altri commenti su altri errori nel codice, ne sarei felice.


Qual è il significato di questo indicatore? Perché ne ho bisogno?


Perché dovrebbe avere bisogno di una tale caratterizzazione:

ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;

Oppure lo è, ma è già esposto:

ExtVolumesBuffer[i]=Volume[i]+(Volume[i]+Volume[i+1])/(2-(Close[i]-Open[i+1])*1000);

???


E per quanto riguarda gli errori nel codice. Le tue linee.

double dVolume=Volume[i];
double vback1=Volume[i+1];

         {
         double vteor12=(dVolume+vback1)/2;
            if (Close[i+1]>Open[i+1] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+1])*1000; else UP12=0;
            if (UP12!=0) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12=0;
            if (Close[i+1]>Open[i+1])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]<0) ExtVolumesBuffer[i]=0;
              }

equivalenti dei seguenti:

double dVolume=Volume[i];
double vback1=Volume[i+1];

double vteor12=(dVolume+vback1)/2;
if (Close[i+1]>Open[i+1] && Close[i]>Open[i])
{
   double UP12=(Close[i]-Open[i+1])*1000;
   double vrealUP12=(dVolume+vback1)/(Close[i]-Open[i+1])*1000;
   ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
   if (ExtVolumesBuffer[i]<0)
      ExtVolumesBuffer[i]=0;
}
else
{
   UP12=0;
   vrealUP12=0;
}

Guardate il codice ottimizzato e pensate perché sono state introdotte così tante variabili? E perché sarebbero "altrimenti" azzerati?

Se capissi l'idea dell'indicatore, sarei in grado di aiutarti.

 
MaxZ:

Quale sarebbe lo scopo di questo indicatore? Perché ne avete bisogno?


Perché si dovrebbe avere bisogno di una tale caratteristica:

o lo è, ma già divulgato:

???


E per quanto riguarda gli errori nel codice. Le tue linee

sono l'equivalente di quanto segue:

Guardate il codice ottimizzato e vi chiedete perché sono state inserite così tante variabili? E perché sarebbero "altrimenti" azzerati?

Se capissi l'idea dell'indicatore, potrei essere in grado di aiutarti.


Grazie per la sua risposta e risponderò alle sue domande.

Proprio questa caratteristica è l'intera idea dell'indicatore. Ho anche preparato un esercizio su MQL. Ho pensato a un compito e intuitivamente capisco che la sua implementazione in un linguaggio non è molto difficile. Mi siedo e lo provo.

Quindi, l'essenza della caratteristica è che confronto un certo livello teorico fisso di due volumi unidirezionali con il livello reale. Cioè, se il rapporto effettivo tra la somma dei due volumi e l'intervallo effettivo di "apertura-chiusura" è superiore a quello teorico specificato, aggiungo un "bonus" al secondo volume effettivo sotto forma di differenza tra i risultati teorici e reali calcolati. Se il livello reale è inferiore a quello teorico, sottraggo la stessa differenza dal volume della seconda barra. Posso spiegarlo chiaramente?

Per sicurezza, dirò che nel rivelare questa caratteristica, hai messo le parentesi in modo errato, probabilmente in fretta.

Inoltre, mi sembra che quelle stringhe che lei considera equivalenti alle mie porteranno alla divisione per zero. Ora controllerò.

 

Ciao a tutti!

Grazie al prezioso aiuto degli esperti di questo ramo (specialmente Roman) sono riuscito a fare un semplice Expert Advisor, che ha mostrato + sul tester. Domanda: come determinare se può essere collocato per il trading reale? Ci sono dei criteri?

 
MaxZ:
Prima io! :-P :-P

Stai andando nella direzione sbagliata... Non al giusto criterio di trading, è una questione di STO-HAS-TO-KE... :-Р