[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 274

 
igrok2008 >> :

Hallo.

Es gibt einen Experten SimpleMA, ich habe es ein wenig für mich gezwickt, nur ein wenig ...:-))) und genannt MASimple_v2x.

dann habe ich versucht, es zu verbessern, ABER ABER

Nach dem Experiment erhielt ich eine Fehlermeldung.

WAS HABE ICH FALSCH GEMACHT?????????????

>> Danke im Voraus.



Versuchen Sie es auf diese Weise:

anstelle von - wenn MAF_0 - MAF_1= A
wenn MAS_0 - MAS_1= B

this - double A = MAF_0 - MAF_1;

double B = MAS_0 - MAS_1;

 

Wenn ich das richtig verstehe, verfolgen Sie eine Situation, in der sich beide MAs in dieselbe Richtung bewegen. Viele weitere interessante Entdeckungen warten auf Sie :))

//это выражение не имеет смысла, 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 >> :

Können Sie mir sagen, ob es möglich ist, die Anzahl der Lose in einem Marktauftrag zu erhöhen, ohne neue Lose zu eröffnen?

Nicht, soweit ich weiß, nein! Nur wenn Sie ein neues Los eröffnen. Welchen Sinn hat es, die Lose nach der Transaktion zu erhöhen? Oder meinen Sie, dass Sie sehen, wie Sie sich in die richtige Richtung geöffnet haben, und Sie wollen mehr und mehr Geld?

 
alsu 23.10.2009 10:22
>>

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

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


Wahrscheinlich besser (vielseitiger):

NormalizeDouble(Bid,Digits);
 

Helfen Sie mir, einen Fehler im Code zu finden. kein Fehler beim Kompilieren, aber Berechnungen und Transaktionen gehen nicht durch( Danke im Voraus an die Profis, die hier sind.

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
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;
   }
 

Hallo zusammen, ich bitte um einen Ratschlag!!! Ich habe ein paar Fragen, kann es aber nicht selbst tun:

1. Wie kann man nur einen Auftrag auf einem Balken öffnen lassen?

2. Es gibt mehrere Kauf- und Verkaufsbedingungen, welche Funktion ist dafür zu verwenden?

3. Wie organisiert man die Übertragung einer offenen Position nach Breakeven?

4. Wie wendet man alle drei Bedingungen im EA-Code an (wenn möglich, mit einem Beispiel)?

Ich bin gespannt auf Ihre Antworten. Vielen Dank im Voraus.

 
Piboli >> :

Hallo. Ich bin gerade zufällig auf einen Artikel zu einem Thema gestoßen, das mich interessiert. Nämlich dies: Wählen Sie eine Fenstergröße. .... Optimale Ergebnisse werden erzielt

bei der Wahl einer Fenstergröße in der Größenordnung der fraktalen Dimension der Daten. Um sie zu berechnen, sollte man die Reihe mit einem ausreichend großen Schiebefenster "zerschneiden

(siehe Abbildung 5), und berechnen Sie dann die fraktale Dimensionalität der resultierenden Daten, z. B. mit der Box-Count-Methode....

Bitte teilen Sie mir mit (vorzugsweise auf einfachere Weise), wie ich die Größe dieses Schiebefensters berechnen kann. Oder zumindest, wo man es sehen kann.


Die Kontaktdaten des Autors sind auf der Website zu finden, ich empfehle, die Originalquelle zu konsultieren.
 

EIN HOCH AUF DIE ARBEIT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dank an maniac und granit77.

Eine aktuelle Anekdote. Ein Literaturkurs in einem Computerlabor, geleitet von einem Informatiklehrer.

-Gerasim war, dieser.....thim......nu......a und er hatte keine Soundkarte :-)))))))))))))))))

Nun, was den Experten betrifft, habe ich versucht, die Handelsbedingungen zu verkürzen. Sie wissen schon, zur besseren Wahrnehmung.

Das heißt, wenn es mathematische Berechnungen gibt, ist es besser, sie über double aufzurufen.

 
Maniac >> :

Hallo zusammen, ich bitte um einen Ratschlag!!! Ich habe ein paar Fragen, kann es aber nicht selbst tun:

1. Wie kann man nur einen Auftrag auf einem Balken öffnen lassen?

....... ...

Ich bin gespannt auf Ihre Antworten. Vielen Dank im Voraus.

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

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

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

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

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

 
morok >> :

Helfen Sie mir, einen Fehler im Code zu finden. kein Fehler beim Kompilieren aber Berechnungen und Trades gehen nicht durch( Danke im Voraus an die Profis, die hier sind.

Die erste Sache, die mir in Ihrem Code ins Auge sticht und bei der ich mir nicht sicher bin, ist die Korrektheit der Verwendung der Funktion IndicatorCounted() im Expert Advisor. Ich habe es nicht überprüft, aber ich glaube, dass seine Korrektheit nur bei benutzerdefinierten Indikatoren gewährleistet ist.