[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 274

 
igrok2008 >> :

こんにちは。

SimpleMAのエキスパートがいるのですが、それをちょっとだけ、自分用にいじったのがMASimple_v2xというものです(・・;)

そして、改善しようとしたのですが、しかし、しかし。

実験後にエラーが発生しました。

何が悪かったんだろう.........................................?

>> よろしくお願いします。



この方法で試してみてください。

の代わりに - if MAF_0 - MAF_1= A
if MAS_0 - MAS_1= B

this - double A = MAF_0 - MAF_1;

double B = MAS_0 - MAS_1;

 

私の理解が正しければ、両方のMAが同じ方向に動いている状況を追跡しているのですね。まだまだ面白い発見が待っていますよ :))

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

成行注文のロット数を新規に開くことなく増やすことが可能かどうか、教えてください。

私の知る限りではありません!新しいロットを開いたときのみ。取引後にロットを増やす意味とは?それとも、正しい方向に開いていく様子を見て、もっともっとお金が欲しいということでしょうか?

 
alsu 23.10.2009 10:22
>>

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

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


たぶん、もっといい(汎用性がある)。

NormalizeDouble(Bid,Digits);
 

コンパイル時にエラーは出ないが、計算やトランザクションがうまくいかない( ここにいるプロの方、よろしくお願いします。

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

皆さん、こんにちは!一言お願いします!!!いくつか質問があるが、自分ではできない。

1.1つのバーで1つの注文だけをオープンさせる方法は?

2.いくつかの売買条件がありますが、これにはどのような関数を使用すればよいのでしょうか?

3.Breakevenへのオープンポジションの 移管を整理する方法は?

4.EAのコードで3つの条件をすべて適用する方法(可能であれば、例付き)?

回答が楽しみです。ありがとうございました。

 
Piboli >> :

こんにちは。たまたま、興味のあるテーマの 記事に 出会いました。すなわち、これです。窓の大きさを選ぶ ....最適な結果を得ることができる

の場合、データのフラクタル次元のオーダーのウィンドウサイズを選択する。これを計算するためには、十分に大きなサイズのスライディングウィンドウで系列を「スライス」する必要があります。

(図5参照) を行い、得られたデータのフラクタル次元をBox-count法などで計算する...。

このスライディングウィンドウの大きさをどのように計算すればよいか、(できればもっとシンプルに)教えてください。せめて、どこを見ればいいのか。


著者の連絡先はウェブサイトに掲載されているので、原典を参照することをお勧めします。
 

作品万歳!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

maniacさん、granit77さん、ありがとうございました。

最近の逸話です。コンピュータサイエンスの先生が担当する、コンピュータラボでの文学の授業。

-ゲラシムは、この......ニュ......アで、サウンドカードを持っていなかった :-))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))。

さて、エキスパートについては、取引条件を短くしてみました。知覚をよくするためにね。

つまり、数学的な計算が ある場合は、doubleで呼び出す方が良い。

 
Maniac >> :

皆さん、こんにちは!一言お願いします!!!いくつか質問があるが、自分ではできない。

1.1つのバーで1つの注文だけをオープンさせる方法は?

....... ...

回答お待ちしています。ありがとうございました。

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

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

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

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

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

 
morok >> :

コンパイル時にエラーは出ないが、計算とトレードがうまくいかない( ここにいるプロに感謝します。

あなたのコードで最初に目に留まり、確信が持てないのは、Expert Advisorで IndicatorCounted()関数を使用することの正しさです。確認はしていませんが、カスタムインジケータに限っては その正しさが保証されていると思います。