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

 
Tretyakov Rostyslav #:

a1)

а2)

б)

e sugli altri punti?

 
Порт-моне тв #:

e sugli altri punti?

Affronteremo i problemi man mano che si presentano...

Prima dovresti fare una tabella e definire cosa dovrebbe esserci e dove, e poi scrivere le funzioni

 
Mihail Matkovskij #:

La funzione Color dovrebbe restituire colore, non doppio.

Non sarebbe male studiare anche il link che il motore del sito ha aggiunto.

Grazie. fammelo leggere

 
Tretyakov Rostyslav #:

Ci occuperemo dei problemi man mano che si presentano...

Prima dovete fare una tabella e definire cosa dovrebbe esserci e dove, e poi scrivere le funzioni

In pratica posso farlo, la cosa più difficile per me è scrivere il prezzo in un file e calcolare il tempo

 
Порт-моне тв #:

Posso farlo in linea di principio, la cosa più difficile per me è scrivere il prezzo in un file e calcolare il tempo

Perché scriverlo in un file, si può fare così?


Non è neanche difficile, nel momento in cui si comincia a contare

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

Ci occuperemo dei problemi man mano che si presentano...

Prima devi fare una tabella e definire cosa dovrebbe esserci e dove, e poi scrivere le funzioni

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

Ho provato a fissare il prezzo premendo il pulsante attraverso una variabile, sperando che quando il prezzo raggiunge questa variabile, l'ordine sarà aperto, ma non è successo nessun miracolo. Aiuto.

Anche se la funzione è teoricamente corretta, se metto

if(Ask == pricefix)
allora l'ordine si apre immediatamente, ma ho bisogno che sia 4 punti più basso dopo aver ricordato
 
Порт-моне тв #:

Stavo tipo cercando di fare una correzione del prezzo tramite una variabile, sperando che quando il prezzo è uguale a quella variabile, si apre un ordine, ma non è successo nessun miracolo. Aiuto.

Anche se la funzione è corretta in teoria, se imposto

L'ordine si apre immediatamente ma ho bisogno che sia 4 pip più basso dopo aver ricordato




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

Ciao!

Ho una domanda.

C'è un modo per ricordare il drawdown massimo?

Cioè il drawdown di oggi è del 16% e 20 giorni fa era del 5%, quindi il drawdown massimo è del 16% e se domani è del 24% allora il drawdown massimo è del 24%.

Oppure è difficile da ricordare.

 
Alexander Avksentyev #:

Ciao!

Ho una domanda.

C'è un modo per ricordare il drawdown massimo?

Cioè il drawdown di oggi è del 16% e 20 giorni fa era del 5%, quindi il drawdown massimo è del 16% e se domani è del 24% allora il drawdown massimo è del 24%.

Oppure è complicato.

CodeBase ha indicatori che visualizzano il Bilancio, la storia di Equty dalla storia del trading. Esiste più di uno di questi strumenti.

Prendi i dati e calcolali come un normale indicatore

 
Maxim Kuznetsov #:

CodeBase ha indicatori che visualizzano Balance, Equty history dalla storia del trading. E ce n'è più di uno, di questi strumenti.

Prendi i dati e calcolali come per un indicatore standard

Beh, naturalmente si può inviare l'output a un indicatore e fare dei confronti.

Grazie!!!

Motivazione: