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

 
evillive:

アレイの外に出ても戸惑わない?

ここです。

また、low[1]だけでなく、そこにあるすべてのものを「見せたくない」。

1
 
mario065:
修正方法を教えてください。
このスクリプトに何を求めているのか、人間の言葉で説明してください。
 
evillive:
このスクリプトに何を求めているのか、人間の言葉で説明してください。

Volume指標の 日足から現在までの最安値/最高値を検索します。

新しい高値/低値があれば、最後のものを記憶する。

 

evilliveです。

ご清聴ありがとうございました :)

 
mario065:

Volumeインジケーターの、その日の始まりから現在までの最安値/最高値を検索します。

新しい高値/低値があれば、最後のものを記憶します。

これがベストでしょう。

//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
int high,low;
datetime timeh,timel;
//+------------------------------------------------------------------+
int init(){  
  return(0);
 }
int deinit(){
  Comment("");
  return(0);
 }  
//-------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnStart(){
    double   spred = MarketInfo(Symbol(),MODE_SPREAD);
    int      limit,Open_bar_per,Close_bar_per,av_vol;
    datetime Time_period,Close_per;
//+------------------------------------------------------------------+
       Time_period   = iTime(Symbol(),PERIOD_D1,0);
       Open_bar_per  = iBarShift(Symbol(),0,Time_period,false);
       Close_per     = iTime(Symbol(),0,0);
       Close_bar_per = iBarShift(Symbol(),0,Close_per,false);
       limit         = Open_bar_per - Close_bar_per;

int hivol_s=iHighest(NULL,0,MODE_VOLUME,limit,1);
int lovol_s=iLowest(NULL,0,MODE_VOLUME,limit,1);
high=iVolume(NULL,0,hivol_s);
low=iVolume(NULL,0,lovol_s);
timeh=iTime(NULL,0,hivol_s);
timel=iTime(NULL,0,lovol_s);
       av_vol = NormalizeDouble(high/3,0);
//+------------------------------------------------------------------+
     Print("\nВреме на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS),", Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
             "\nТекущ спред: ",DoubleToStr(spred/10,1),
             "\n High_per  :  ",high,
             "\n Low_per   :  ",low,   
             "\n time_high :  ",TimeToStr(timeh,TIME_SECONDS),
             "\n time_low  :  ",TimeToStr(timel,TIME_SECONDS),
             "\n Close_per :  ",TimeToStr(Close_per,TIME_SECONDS),
             "\n Open_per  :  ",TimeToStr(Time_period,TIME_SECONDS), 
             "\n av_vol    :  ",av_vol
             ); 
  }

私のコメントでは何も表示されず、正常に印刷されるのですが...。

 
void CalculateSimpleMA(int rates_total,int prev_calculated,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   if(prev_calculated==0)
   
     {
      limit=InpMAPeriod;
      //--- calculate first visible value
      double firstValue=0;
      for(i=0; i<limit; i++)
         firstValue+=price[i];
      firstValue/=InpMAPeriod;
      ExtLineBuffer[limit-1]=firstValue;
      ExtLineBufferFid[1]=(firstValue*InpMAPeriod-price[i-InpMAPeriod])/i-1; Добрый человек предоставил вот такую реализацию(sma99[i]=(sma100[i]*100-d[i-100])/99;), но что то не выходит!

ご挨拶、何度も申し訳ありませんが、興味深い質問です!(笑)

計算方法

Sliding Period (例:16)は、16の期間を起点に15の期間を計算する。

 
evillive:

それが一番いいんじゃないでしょうか。

コメントには何も表示されず、印刷は正常に行われるのですが・・・。

こんにちは、evlliveです。

可能ですが、必要ありません。

あなたはvoidOnStartを使っていて、私はintstartを使っているので、コメントを見ることができません。

先日、コメントファイルに書いたブルガリア語の文章を紹介します。

今日、話し合ったことを調べてみるよ。

ご感想ありがとうございました。

追記:もう1つファイルを追加しました。

ボディエクスプローラーでファイルH_L-最初のインジケータ、ファイル_6が描画されるだけです。

 
evillive:

こっちの方がいいんじゃない?

コメントが表示されない、印刷が正常に出力されない...。

言ったもん勝ち。 まだ配列に入れてないが、外部関数に変換したらやってみる。

線はindicator-dataの最初のウィンドウに描かれ、それがvolumetric用であれば、volumetric用のデータ兄弟が必要です。

このように、Volumetの範囲をLow、Medium、Highのパーツに分類することで、より正式なものとしました。

 

こんばんは!(^o^)

最初のEAのどこが悪いか教えてください。骨折時のメッセージを表示しなかった。

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

externPeriod_MA=8; // 算出されたMAの周期

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

int start() // 特殊関数スタート

{

double MA_f, // 0 bar での MA 値

MA_s, // 1バールのMA値

MA_t, // 2バーでのMA値

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

// 関数へのアクセス tech.ind.

MA_f =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);

MA_s =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1);

MA_t =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,2);

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

if (MA_t>MA_s<MA_f)

Alert("Fracture in middle downwards");// メッセージ

if (MA_t<MA_s>MA_f)

Alert("Break in middle from above");// メッセージ

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

return; //start()から抜ける

}

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

ありがとうございました。

 
Top2n:

ご挨拶、何度も申し訳ありませんが、興味深い質問です!(笑)

計算方法

Sliding period(例:16)を有する場合、period16からperiod15を算出する。

Y(n+1)=(Y(n)*n+x[n+1])/(n+1), Y(i) はi個の値の移動平均, x[i] は値番号i.です。時系列に沿った数値のナンバリング。

なぜこんなものが必要なのか、教えてもらえるとありがたい。