どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 343

 
もちろん、できますよ!!!
 
Vladimirovits:
expertsフォルダにVisual Studioのプロジェクトが丸ごと入って いるのですが...。 コンパイルは.exeファイルですよね?

いいえ、コンパイルされたライブラリは、ExpertSample.dll ファイルです。
 
Forexman77:

テンプレートは教科書から引用したものです。今、エラー処理機能が苦手なんです。

注文開始時にRefreshRates();がある(言われた通り、BidsとAsksをMarket Infoに置き換えた)。

また、エラー処理機能。

と聞きたくなりました。129エラーの以下の行を追加してもよろしいでしょうか?

129

err_invalid_price

誤った価格


このエラーが発生した場合、Expert Advisorのロジックを見直す必要があります。取引注文で 誤った価格を送信するのはExpert Advisorの方です。そして、誤った取引注文でサーバーを停滞させることにしたのですか?


自動売買がオフになり、それで終了です。

 
artmedia70:

129

err_invalid_price

誤った価格


このエラーが発生した場合は、EAのロジックを見直す必要があります。取引注文で間違った価格を送信するのはExpert Advisorです。そして、誤った取引注文でサーバーを停滞させることにしたのですか?


自動売買が無効になる、それだけです。

すべてに目を通した。Expert Advisorがリクエストを送信したときかな。

Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy
は、どのような価格で購入したかを記憶しているのでしょうか?

そして、次のようなことがありました。

if  (iClose(Symbol(),Period(),0) <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }

買値がMA以下であれば、買います。これまでアスクから買っていたので、アスクとのキャッチボールを行っています。

売るときは問題なかったのに、買うときだけ。

このトピックに関する情報を見つけました。

"要求された開始価格が価格ストリームにない場合、または要求された価格が小数点の後に 正規化されていない場合、エラー129 (ERR_INVALID_PRICE) が生成されます。要求された始値が著しく古い場合、slimageパラメータの値に関係なく、エラー138(ERR_REQUOTE)が発生します。一方、要求された価格が時代遅れであるが、価格の流れの中にまだ存在する場合、ポジションは現在の価格で、現在の価格が価格+スリッページの範囲内にある場合にのみ開かれます。"

結局bidとaskでないなら、取引は成立しているはずです。引用:「要求された価格が期限切れでも価格の流れに存在する場合、ポジションは現在の価格で開き、現在の価格が価格+スリッページの範囲内にある場合にのみ開きます」ホバー時の価格は取引ゾーンに100%入っています。終値は移動平均線を大きく下回りました。

 

教祖に質問です。

インジケーターがレンダリングできない部分があるのですが。インジケーターの本質は、ある値以上の動きがなければ、MA_otshetの書き込み値のままであることです。

を超えると、その時点に対応した値になる。

以下、インジケーターのコードと解説を掲載します。

//+------------------------------------------------------------------+
//|                                                         EMAF.mq4 |
//|                                                 Kamil Gazizullin |
//|                                             forexman77@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Kamil Gazizullin"
#property link      "forexman77@yandex.ru"
#property indicator_chart_window
#property indicator_buffers 1
#property  indicator_color1 Aqua 
//--- input parameters
//--- buffers
bool flag=true;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,1);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,MA_1_t,MA_2_t;
    
  if(counted_bars>0)
      counted_bars--;
   limit=Bars-counted_bars;
   static double MA_otshet;  //здесь хранится информация по MA_otshet
  for(int i=0;i<limit;i++)
   {  
      MA_1_t=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t; //разница между сегодня и вчера по скользящей средней
      raznica_static=MA_1_t-MA_otshet; //разница между сегодня и MA_otshet
      RefreshRates();   
      if(raznica > -0.0035 && raznica < 0.0035 && flag) // если raznica не превышает заданное число 
          {
          MA_otshet=MA_2_t; // записываем значение MA_otshet
          ExtMapBuffer1[i]=MA_otshet; //рисуем значение индикатора, как и вчера
          flag=false; // устанавливаем флаг запрета дальнейших расчетов
          }
      if(raznica_static > -0.0035 && raznica_static < 0.0035) //если raznica_static не превышает заданное число
          {
          ExtMapBuffer1[i]=MA_otshet;  // то рисуем значение индикатора, как записанный MA_otshet
          }
      if((raznica > 0.0035) || (raznica <- 0.0035)) // если raznica превышает заданное число
          {
          ExtMapBuffer1[i]=MA_1_t; // то рисуем значение по текущей цене
          flag=true; // разрешаем дальнейшие вычисления для расчета в диапазоне от -0.0035 до 0.0035
          }
   }  
   return(0);
  }
//+------------------------------------------------------------------+

 
Forexman77:

インジケーターが描画されない部分がある。インジケーターの本質は、ある値以上の動きがなければ、MA_otshetの記録値のままであることです。

を超えると、その時点に対応した値になる。

以下、インジケーターのコードと説明です。


DRAW_SECTION

 
Forexman77:

すべてに目を通した。EAがリクエストを送るときかな。

どのような価格で購入したかは覚えていますか?

そして、次のようなことがありました。

つまり、買値がMA以下であれば、買います。売れなくて困った、ということはないのですが。

売るときは問題なかったのに、買うときだけ。

このトピックに関する情報を見つけました。

"要求された開始価格が価格ストリームにない場合、または要求された価格が小数点の後に正規化されていない場合、エラー129 (ERR_INVALID_PRICE) が生成されます。要求された始値が著しく古い場合、slimageパラメータの値に関係なく、エラー138(ERR_REQUOTE)が発生します。一方、要求された価格が時代遅れであるが、価格の流れの中にまだ存在する場合、ポジションは現在の価格で、現在の価格が価格+スリッページの範囲内にある場合にのみ開かれます。"

結局bidとaskでないなら、取引は成立しているはずです。引用:「要求された価格が期限切れでも価格の流れに存在する場合、ポジションは現在の価格で開き、現在の価格が価格+スリッページの範囲内にある場合にのみ開きます」ホバー時の価格は取引ゾーンに100%入っています。終値は移動平均線を大きく下回りました。

Askが常に正規化されるのは価格だと仮定しよう:それは計算されないので、正規化する意味がないのである。

では、なぜ価格が間違っている可能性があるのでしょうか?データが古くなっているのでは?OrderSend() の直前でRefreshRates()を実行してみてください。

 
トレーダーの皆様、プログラマーの皆様、こんにちは!!!
AccountComanyの意味を教えてください。
名前からある程度の結論は出ますが、プログラミング言語であるMT4とどのように関係しているのでしょうか?

AccountCredit?

AccountCurrency?

AccountEquity?

AccountFreeMargin?

AccountFreeMarginCheck?

AccountLeverage?

AccountStopoutLevel?

AccountStopoutMode?

ArrayBsearch?

各コマンドの詳細な説明を知りたいです。よろしくお願いします。

 

ArrayCopy?

ArrayCopyRates?

ArrayCopySeries?

ArrayDimension?

ArrayGetAsSeries?

 

アレイレートとは何ですか?