Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 994

 
Lol Kek:

È possibile per una variabile di input di tipo booleano nell'interfaccia dei parametri di input fare un doppio clic invece di alternare vero/falso per visualizzare il suo testo? Grazie

enum  ENUM_ONOFF
{
On  = 1,  // On   тут любой текст
Off = 0   // Off  тут любой текст
};

input ENUM_ONOFF iValue = On; // Параметр
 
Vladimir Pastushak:

Grazie, ma questo è un po' diverso. Conosco questo metodo - in questo caso avrò un selettore a discesa, quando lo si seleziona, si seleziona il valore.

Ma ho bisogno che funzioni come input bool yesOrNo = true; - quando nei parametri in entrata basta cliccare due volte e cambia valore al contrario e viceversa a quelli ripetuti. Solo che invece di vero e falso stampate il vostro testo

 
Lol Kek:

Grazie, ma è un po' diverso. So di questo modo - in questo caso avrò un selettore a discesa, quando devo selezionarlo, seleziona il valore.

Ho bisogno che funzioni come input bool yesOrNo = true; - quando nei parametri in entrata basta cliccare due volte e cambia valore al contrario e viceversa a quelli ripetuti. Solo che invece di vero e falso stampate il vostro testo

Non c'è differenza, bool è vero e folse è 1, folse è 0

 

Salve. Sono un principiante verde. Alcuni consigli sulle basi.

1 - perché sto programmando in mql4? Mi manda un template per mql5 con funzioniint OnInit() e void OnTick()? Non creano errori, ma funzionano. Comincio a confondermi.

2 - Sto scrivendo un Expert Advisor.void OnTick() - come vedo sostituisce la funzione int start() eint OnInit()- invece diint init().

2.1 - Ho prescritto le variabili che saranno utilizzate inint OnInit() e ha iniziato a lamentarsi. Ho assegnato un tipo di variabile immediatamente come appare. La maledizione si è fermata. Perché?

2.2 - È facile aprireordini di acquisto e vendita in sospeso. Perché non li apre? Anche se non vedo alcun errore.

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,Ask+50,3,0,0,"bs1",1,0,clrGreen);

int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,Bid+50,3,0,0,"ss1",-1,0,clrRed);

3 - Come avvitare un contatore alla variabile - numero d'ordine. (BS1, SS1) - variabili che ci dicono direttamente di quale ordine si tratta. Così, quando l'EA continua a cercare l'ordine necessario, lo rileverà altrettanto facilmente. Ilsuo identificatore rimarrà lo stesso dopo cheOP_BUYSTOP cambia il suo valore inBUY? Sarò in grado di trovarlo usando i dati in BS1?

4 - Qual è il modo più semplice per controllare se uno degliordini pendenti è già aperto o no, specialmente se nei parametri di apertura è specificato un possibile slippage di 3 punti. Cioè analizza una gamma di prezzi, non solo un prezzo e può aprire a 1-3 pip sopra/sotto il prezzo predefinito....

5. Per favore consigliatemi dove trovare un libro di testo o lezioni su MQL4. Voglio migliorare le mie capacità. Mi chiedo. Può essere una strategia descritta in 2 righe, ma quando apro un Expert Advisor, vedo 100500 righe di codice. Perché... Non capisco il codice :(


Sono sommerso di domande :)) Per favore, aiutatemi a capire

 
<br/ translate="no">.


Sono sommerso di domande )))) Per favore aiutatemi a capire

2.2 : Ask+50 è un po' esagerato :-) 50 per quanto ho capito l'idea dei punti... Voglio dire 50 * _Point... e normalizzarlo. Cioè, invece di Ask+50 dovreste scrivere NormalizeDouble(Ask+50*_Point,_Digits).

 
@Maxim Kuznetsov- grazie).
 

Letto, capito cosa significa ciascuno dei parametri, set.....

La mia vendita in sospeso non si apre. Non dà nemmeno errori:GetLastError()=0! Si apre per comprare come dovrebbe, ma ignora per vendere. Mi fa ridere - cosa vuole? ))))

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
    if (GetLastError()==1);
    {
    Alert (GetLastError());
    }

Brava gente, dove posso trovare le conoscenze necessarie? ))

 
Gilmor:

Letto, capito cosa significa ciascuno dei parametri, set.....

La mia vendita in sospeso non si apre. Non dà nemmeno errori:GetLastError()=0! Si apre per comprare come dovrebbe, ma ignora per vendere. Mi fa ridere - cosa vuole? ))))

Brava gente, dove posso trovare le conoscenze necessarie? ))

C'è un'interessante scheda nel terminale chiamata "Esperti". È qui che vengono scritti gli errori degli esperti. Date un'occhiata. E poi nel vostro codice.

 
int start()                                  // Спец. функция start()
  {                                          
  double prise;
  double lots = 0.01;  
  if (OrdersTotal()<1)
  {
  prise = MarketInfo(Symbol(), MODE_ASK);
  // int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
   /* if (GetLastError()==1);
    {
    Alert (GetLastError());
    }
    */
  }
 
   return;                                   // Выход из start()
  }

Artyom Trishkin:

C'è una scheda interessante nel terminale - "Esperti". Contiene errori di Expert Advisors. Si può guardare attraverso di essa. E poi nel vostro codice.

Come potete vedere questa scheda mostra anche presunti perfetti. L'ha caricata e l'ha avviata. Non ha nessun tipo di errore. :(

E quindi, grazie! Non sapevo di usare questa scheda.

 

Buon pomeriggio.

Mi sono torturato per una settimana cercando di trovare informazioni. Aiuto con il codice))

Scopo: scoprire la differenza di pip di apertura e di chiusura di una candela.

Sommare il tutto e visualizzarlo sullo schermo, per 100 barre.

Alla fine, voglio vedere l'importo totale sullo schermo.

void OnTick ()

{

doppio minprice =99999 , mp,cl,

maxprice =-99999;

doppio Indice = 0;

doppio Index1 = 0;

for(int i=100; i>0; i--)

{

mp = iLow (Symbol(), PERIOD_CURRENT, i);

cl = iClose(Symbol(), PERIOD_CURRENT, i);

se( mp < minprice)

minprice = mp - cl;

Indice = minprice + mp ;

}

Grazie.

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.