[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 143

 

Ecco fatto:

//+------------------------------------------------------------------+
extern string   _____= "Параметры Длинных позиций"; 
extern int     RSI_period  =20;
extern int     MA_period          =21;
extern int     TP=200;
extern int     SL=61;

extern string   ____= "Параметры Коротких позиций";
extern int     RSI_period_SELL  =20;          
extern int     MA_period_SELL          =21;
extern int     TP_=200;
extern int     SL_=61;

//------------------------------
extern string     ______= "Общие Параметры ";
extern double  Lot=0.1;
extern int     Slippage=3;
extern int    Low_lim=8;
extern int   Up_lim=8;

int ExpertBars;
int ticket;

//*********************************************************************
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
ExpertBars = Bars;
//----
   return(0);
  }

Il prossimo:





int start()
  {
bool isNewBar=false;
if ( ExpertBars !=Bars) { ExpertBars=Bars; isNewBar=true; }
if ( isNewBar) { //если есть новый бар
 
//===== Ищем возможность войти в рынок =========================================
if ( Long)                   {     //если "выключатель" включен
if (! ExpertOrder( MagicLong ))//если  нет открытых длинных позиций 
  {
 //------заполняем массив значениями RSI для длинных позиций --------
double RSI_array_buy[50];
int    j=0;
while ( j<50)
 {
RSI_array_buy[ j]= iRSI(NULL, 0, RSI_period, MODE_SMA, j);
j++;
 }
ArraySetAsSeries( RSI_array_buy,true);
double MA_low =iMAOnArray( RSI_array_buy,0, MA_period,1,MODE_SMA,0);
double RSI_0=iRSI(NULL, 0, RSI_period,MODE_SMA, 1);
double RSI_1=iRSI(NULL, 0, RSI_period,MODE_SMA, 2);   
//---------проверяем условие на покупку----------------------------
  if   (           ( RSI_1< MA_low)  &&
          ( RSI_0> MA_low)  )
   {
  ticket=OrderSend(Symbol(),0, Lot,Ask, Slippage,Bid- SL*Point,Ask+ TP*Point,NULL, MagicLong,0,CLR_NONE);
  if ( ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0);   }          
   }
   }}
   //--------------------------------------------------------------
if ( Short)                   {     //если "выключатель" включен 
if (! ExpertOrder( MagicShort ))//если  нет открытых длинных позиций 
  {  
 // ---заполняем массив значениями рси  для коротких  позиций
double RSI_array_sell[50];
int    k=0;
while ( k<50)
 {
RSI_array_sell[ k]= iRSI(NULL, 0, RSI_period_SELL, MODE_SMA, k);
k++;
 }
ArraySetAsSeries( RSI_array_sell,true);
double MA_up =iMAOnArray( RSI_array_sell,0, MA_period_SELL ,1,MODE_SMA,0);
double RSI_0s=iRSI(NULL, 0, RSI_period_SELL,MODE_SMA, 1);
double RSI_1s=iRSI(NULL, 0, RSI_period_SELL,MODE_SMA,2);
    
//--------проверяем условие на продажу------------------------------
  if  (           ( RSI_1s > MA_up )  &&
          ( RSI_0s < MA_up )) 
   {       
  ticket=OrderSend(Symbol(),1, Lot,Bid, Slippage,Bid+ SL_*Point,Bid- TP_*Point,NULL, MagicShort,0,CLR_NONE);
  if ( ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0);  }     
   } 
   }} 
 

Grazie!

 
Ciao! Cercando di ZZ in forma di un istogramma con la visualizzazione sul TF del segnale da entrambi i TF basso e alto, ma ha dato 5 errori" ExtMapBuffer2 "- variabile non definita", cosa c'è di sbagliato? .....Help se non è possibile!!! Grazie
File:
dinap_zzg.mq4  4 kb
 

Signori (Compagni :))

Sto cercando di implementare un indicatore MAMy (è in kodobase).

Sto cercando di implementare l'indicatore MAMy (è in kodobase) in forma di freccia.

Le frecce sono disegnate su una barra non formata e se, al momento della sua formazione, le condizioni sono cambiate - la freccia non viene rimossa, e può essere rimossa solo quando si riavvia l'indicatore.

Vorrei che le frecce fossero disegnate solo sulle barre formate. Se avete tempo - datemi una lezione pratica - correggete questo codice disordinato ...

(È molto probabile che troverete qualcosa di superfluo - scusate (per scrivere un indicatore da zero - le mie mani non crescono da lì - anche se sono d'oro), sto ancora usando i pezzi di altre persone).

Grazie in anticipo.

 

Grazie mille !

Questo è esattamente quello che il dottore ha ordinato!

Perché dalla storia dell'account, sul grafico.

non ha un bell'aspetto.



 

Potresti per favore dirmi come mql può simulare un debugger (per guardare l'algoritmo passo dopo passo con i valori correnti delle variabili), se non c'è un debugger, forse c'è una pressione di tasti in attesa e una funzione di output di dialogo o qualcosa del genere?

 

Ho trovato la funzione Print, ma ora ho un'altra domanda: come funziona l'uscita dell'indicatore?

Ci sono 512 barre sul grafico. Teoricamente il codice dovrebbe stampare l'inizio e il numero di barra sulle barre 1-14, poi il principale e il numero di barra sulle altre barre, ma per qualche motivo solo l'inizio viene stampato fino alla fine e da 295 barre. Puoi dirmi per favore cosa c'è che non va?

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Yellow

extern int Param=14;
extern double Razmah=0.9;

double VH[], VL[], Rang=0, z=0, z1=0, num=0, num1=0;
int init()
  {
   SetIndexBuffer(0, VH);
   SetIndexBuffer(1, VL);
   return(0);
  }
int start()
  {
   int i, counted_bars=IndicatorCounted();
   if ( counted_bars<= Param+1) 
   { 
      for( i=0; i<=Bars- counted_bars-1; i++)
      {
         VH[ i]=High[ i];
         VL[ i]=Low[ i];
         num++;
         Print("Start     ", num);
      }
      return(0);
   }
   
   i=-5;
   if( counted_bars> Param+1) i=Bars- counted_bars-1;
   while( i>=0)
     {
      num1++;
      Print("Main     ", num1 );
      VH[ i]=High[ i]*1.01;
      VL[ i]=Low[ i]*0.99;
      i--;
     }
   return(0);
  }
 
Andrej78 писал(а) >>

Ho trovato la funzione Print, ma ora ho un'altra domanda: come funziona l'uscita dell'indicatore?

Ci sono 512 barre sul grafico. Teoricamente il codice dovrebbe stampare l'inizio e il numero di barra sulle barre 1-14, poi il principale e il numero di barra sulle altre barre, ma per qualche motivo stampa solo l'inizio fino in fondo e da 295 barre. Si prega di consigliare qual è il problema.

Controllate i vostri registri.

 
Vinin писал(а) >>

Devi guardare nei registri

>> come si guardano i registri?

 
Potete per favore aiutarmi a metterlo in loop, non funziona. Basterebbe un look fresco? Grazie in anticipo per il vostro aiuto. Descrizione nel codice.
File:
proba9.mq4  3 kb
Motivazione: