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

 
igrok2008 >> :

Salve.

C'è un esperto SimpleMA, l'ho modificato un po' per me, solo un po'...:-))) e chiamato MASimple_v2x.

Poi ho cercato di migliorarlo MA MA

Ho un errore dopo l'esperimento.

COSA HO FATTO DI SBAGLIATO?????????????

>> grazie in anticipo.



Prova in questo modo:

invece di - se MAF_0 - MAF_1= A
se MAS_0 - MAS_1= B

questo - doppio A = MAF_0 - MAF_1;

doppio B = MAS_0 - MAS_1;

 

Se ho capito bene, stai seguendo una situazione in cui entrambe le MA si stanno muovendo nella stessa direzione. Molte altre scoperte interessanti ti aspettano :))

//это выражение не имеет смысла, if здесь лишний
   if MAF_0 - MAF_1= A
   if MAS_0 - MAS_1= B
//если требовалось определить разницу значений МА на 1-ом и нулевом баре, то можно так
   double A = MAF_0 - MAF_1;
   double B = MAS_0 - MAS_1;
 
rushman >> :

Potete dirmi se è possibile aumentare il numero di lotti in un ordine a mercato senza aprirne di nuovi?

Non che io sappia! Solo quando si apre un nuovo lotto. Che senso ha aumentare i lotti dopo l'accordo? O vuoi dire che vedi come ti sei aperto nella giusta direzione, e vuoi sempre più soldi?

 
alsu 23.10.2009 10:22
>>

И что теперь с этим делать?

NormalizeDouble(Bid,4);   //:))))


Probabilmente meglio (più versatile):

NormalizeDouble(Bid,Digits);
 

Aiutatemi a trovare un bug nel codice. nessun errore durante la compilazione ma i calcoli e le transazioni non vanno a buon fine( Grazie in anticipo ai professionisti che sono qui.

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
extern int    EMA1 = 14;                                  // Период 1-й EМА
extern int    EMA2 = 48;                                  // Период 2-й EМА
extern int    EMA3 = 144;                                  // Период 3-й EМА                             
extern int period=12;
extern int porog =3;
extern int metod =1;
extern int metod2=1;
extern int prise =0;
extern double SL =  1000;                                  // СтопЛосс ордера
extern double TP =  500;                                  // ТэйкПрофит ордера
extern double Lots= 0.1;  
//--------------------------------------------------------------------------------------------
int
   New_Bar,                                              // 0/1 Факт образования нового бара
   Time_0,                                               // Время начала нового бара
   total;                                                // Крличество открытых ордеров
//--------------------------------------------------------------------------------------------
double 
   Lot,                                                  // Количество лотов
   Norm,                                                 // Предыдущее значение 1-й МА (розов)
   Fast,                                                  // Текущее    значение 1-й МА (розов)
   Slow,                                                // Текущее    значение 2-й МА(голубая)
   Signal[];
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int init()  
   {
//============================================================================================
   SL = SL*Point;                                        // SL в пунктах
   TP = TP*Point;                                        // ТР в пунктах
   return;
//============================================================================================
   }  
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int start()  
   {
//============================================================================================
   total=OrdersTotal();                                  // Общее количество ордеров
   if ( total==2)return;                                  // Уже открыты оба ордера

//----------------------------------------------------------------------------- Новый бар ----
   New_Bar=0;                                            // Для начала обнулимся
   if ( Time_0 != Time[0])                                // Если уже другое время начала бара
      {
      New_Bar= 1;                                        // А вот и новый бар
      Time_0 = Time[0];                                  // Запомним время начала нового бара
      } 
//--------------------------------------------------------------------------------------------
//---расчет тренда ввех или вниз (XMA)
   int limit;
   double tmp1, tmp2;
   int counted_bars=IndicatorCounted();
   int i;
   if( counted_bars<0) return(-1);
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
   for ( i = limit; i>=0; i--){
     tmp1=iMA(Symbol(),0, period,0, metod, prise, i);
     tmp2=iMA(Symbol(),0, period,1, metod2, prise, i); 
     if(MathAbs( tmp1- tmp2)>= porog*Point)
     {       Signal[ i]= tmp2;      }
     
//--------------------------------------------------------------------------------------------
   Fast  =iMA(NULL,0, EMA1, 0,MODE_EMA, PRICE_CLOSE, 0);// Текущее    значение 1-й EМА
   Norm =iMA(NULL,0, EMA2, 0,MODE_EMA, PRICE_CLOSE, 0);// Предыдущее значение 2-й EМА
   Slow=iMA(NULL,0, EMA3, 0,MODE_EMA, PRICE_CLOSE, 0);// Текущее    значение 3-й EМА
   
//--------------------------------------------------------------------------------------------
   if ( Fast> Norm && Norm> Slow && New_Bar==1 && Close[ i]> Signal[ i]) Open_Buy();      // Движение снизу вверх = откр. Buy
   if ( Fast< Norm && Norm< Slow && New_Bar==1 && Close[ i]< Signal[ i]) Open_Sell();     // Движение сверху вниз = откр. Sell
   
   }
      return;
//============================================================================================
   }  
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int Open_Buy()  
   {
   if ( total==1)
      {
      OrderSelect(0, SELECT_BY_POS);                     // Выделим ордер
      if (OrderType()==0)return;                         // Если он buy, то не открываемся
      }
   OrderSend(Symbol(),0, Lots, Ask, 0, Ask- SL, Ask+ TP, "", 0, 0, Blue);// Открываемся
   return;
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int Open_Sell() 
   {
   if ( total==1)
      {
      OrderSelect(0, SELECT_BY_POS);                     // Выделим ордер
      if (OrderType()==1)return;                         // Если он sell, то не открываемся
      }
   OrderSend(Symbol(),1, Lots, Bid, 0, Bid+ SL, Bid- TP, "", 0, 0, Red);// Открываемся
   return;
   }
 

Ciao a tutti, un consiglio per favore!!! Ho alcune domande, non posso farlo da solo:

1. Come far aprire un solo ordine su una barra?

2. Ci sono diverse condizioni di acquisto e vendita, quale funzione usare per questo?

3. Come organizzare il trasferimento di una posizione aperta a Breakeven?

4. Come applicare tutte e tre le condizioni nel codice EA (se possibile, con un esempio)?

Aspetto con ansia le vostre risposte. Grazie mille in anticipo.

 
Piboli >> :

Salve. Mi è capitato di imbattermi in un articolo su un argomento che mi interessa. Vale a dire questo: Scelta della dimensione della finestra. .... Si ottengono risultati ottimali

nel caso della selezione di una dimensione della finestra dell'ordine della dimensione frattale dei dati. Per calcolarlo, dobbiamo "affettare" la serie con una finestra scorrevole di una dimensione sufficientemente grande

(vedi Figura 5 ), e poi calcolare la dimensionalità frattale dei dati risultanti usando, per esempio, il metodo Box-count....

Per favore consigliate (preferibilmente più semplice), come calcolare la dimensione di questa finestra scorrevole. O almeno dove guardarlo.


I dettagli di contatto dell'autore sono sul sito web, consiglio di consultare la fonte originale.
 

URRÀ PER IL LAVORO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Grazie a Maniac e Granit77.

Un aneddoto recente. Una classe di letteratura in un laboratorio di computer, guidata da un insegnante di informatica.

-Gerasim era, questo.....thim......nu......a e non aveva una scheda audio :-)))))))))))))))))

Beh, per quanto riguarda l'esperto, ho cercato di accorciare la condizione di trading. Sai, per una migliore percezione.

Cioè, se ci sono dei calcoli matematici, è meglio chiamarli tramite il doppio.

 
Maniac >> :

Ciao a tutti, un consiglio per favore!!! Ho alcune domande, non posso farlo da solo:

1. Come far aprire un solo ordine su una barra?

....... ...

Sto aspettando le vostre risposte. Grazie mille in anticipo.

https://www.mql5.com/ru/forum/102366

//-----------------

https://www.mql5.com/ru/forum/113983/page2

//-------------

https://www.mql5.com/ru/forum/110184

 
morok >> :

Aiutatemi a trovare un bug nel codice. nessun errore durante la compilazione ma i calcoli e le compravendite non vanno a buon fine( Grazie in anticipo ai professionisti che sono qui.

La prima cosa che mi salta all'occhio nel tuo codice e di cui non sono sicuro è la correttezza dell'uso della funzione IndicatorCounted() nell'Expert Advisor. Non ho controllato, ma credo che la sua correttezza sia garantita solo negli indicatori personalizzati.

Motivazione: