Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 169

 
sandex:

Dichiarare che l'array è statico, di dimensione 1:

Una riga appare dopo la compilazione, che è la stessa di questa e dell'ultima versione. Ecco l'intero codice:

#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  clrMediumVioletRed
#property  indicator_style1  STYLE_SOLID
#property  indicator_label1  ""
#property  indicator_type2   DRAW_LINE
#property  indicator_color2  clrRed
#property  indicator_style2  STYLE_SOLID
#property  indicator_label2  "Sell TP"
input int Period_ = 34;         //Период
int ma1Handle;
double ma1Val[1];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
SetIndexBuffer(0,ExtMapBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,ExtMapBuffer2,INDICATOR_DATA);
ma1Handle=iMA(_Symbol,_Period,Period_,0,MODE_EMA,PRICE_CLOSE); 
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
ArraySetAsSeries(ma1Val,true);
int bars=Bars(_Symbol,_Period);
for(int i=0;i<bars;i++)
    {
    CopyBuffer(ma1Handle,0,i,1,ma1Val);
    ExtMapBuffer2[i]=ma1Val[0] - ((ma1Val[0]/100)*0.3);//ЗДЕСЬ НЕ ПОЛУЧАЕТСЯ ПОЛУЧИТЬ ЛИНИЮ
    }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Codice di lavoro.
File:
Ind.mq5  3 kb
 

Salve.

Ho deciso di imparare MQL5, ho letto articoli su come generare EAs in MetaEditor, tutto è chiaro ma come rendere gli indicatori che fanno parte degli EAs per commerciare secondo le vostre regole, per esempio l'indicatore CCI fa cose che non mi servono, come fare un ordine di acquisto aperto all'incrocio 100 e chiuderlo all'incrocio 100 dal basso verso il basso, lo stesso per vendere. Anche io ci sto lavorando da un po' e non so come fare.

 
vitan06:

Salve.

Ho deciso di imparare MQL5, ho letto articoli su come generare EAs in MetaEditor, tutto è chiaro ma come rendere gli indicatori che fanno parte degli EAs per commerciare secondo le vostre regole, per esempio l'indicatore CCI non fa quello che voglio; come fare un ordine di acquisto aperto all'incrocio 100 e chiuderlo all'incrocio 100 dal basso verso l'alto; lo stesso per vendere. Anche io ci sto lavorando da un po' e non so come fare.

Ho una domanda distratta: come si usa MQL4?
 
nessun modo
 
sandex:
Codice di lavoro.
Grazie! Funziona!!!
 
vitan06:
nessun modo

allora dimenticatevi tranquillamente del generatore di codice.

Aprire un esempio standard dalla consegna di MA o MACD

Cambia l'indicatore in CCI

e andare

 

Ciao!

Scusa per la domanda, a mio parere, stupida:

Ho scritto un EA su mql5, l'ho caricato correttamente, l'ho testato, l'ho provato su una demo sul mio portatile di casa e ora la demo è in esecuzione su VPS.

L'ho disinstallato dal mio portatile. Ho modificato qualcosa sul sorgente su VPS.

Provato a caricare da VPS a laptop - non lo vede MQL5!!! W7 Explorer ce l'ha dove dovrebbe essere, ma MQL5 no.

Metaeditor via Open file lo trova, lo modifica e lo salva.

Quando provo a compilarlo, l'errore non può creare l'interfaccia del compilatore MQL nella prima riga. Cos'è questo errore?

Cosa devo fare?

 

Potreste consigliarmi come ottenere il prezzo attuale nel codice dell'indicatore e confrontarlo con un altro indicatore per disegnare una linea?

Ottengo il prezzo corrente nell'Expert Advisor:

MqlTick latest_price;       
double iclose=latest_price.bid;
Ma come faccio a metterlo nell'indicatore?
 
forexman77:

Potreste consigliarmi come ottenere il prezzo attuale nel codice dell'indicatore e confrontarlo con un altro indicatore per disegnare una linea?

Nell'EA ottengo il prezzo corrente come segue:

Ma come faccio a metterlo nell'indicatore?
Guardate nel codice dell'indicatore, funzione OnCalculate().