[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 121

 

http://clip2net.com/s/2LkQp

何かできることがあれば...皆さん、こんにちは。フラクタルの設定を設定画面に入れたいのですが、関数の中に入っているのですが・・・。

 
Allis:

http://clip2net.com/s/2LkQp


何かできることがあれば...皆さん、こんにちは。フラクタルの設定を設定画面に入れたいのですが、関数の中に入っているのですが・・・。


追加;


extern int Bars.left =5;

と次回作にも期待します。

をクリックし、以下の行をコメントアウトして、繰り返さないようにします。

// int Bars.left =5;

// int Bars.righ =5;

 
BeerGod:

追加;


extern int Bars.left =5;

そして次作でも

をクリックし、以下の行をコメントアウトして、繰り返さないようにします。

// int Bars.left =5;

// int Bars.righ =5;


あなたの書き方ではダメでしたか?エクスターンズに持ち込んで、一番下にコメントアウトして...。

http://clip2net.com/s/2LlEi、実はそこからスタートしました。

//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "© 2007 Takbir"
#property link      "www.stigal.com"
//----
#define major   1
#define minor   1
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_width1  1
#property indicator_width2  1
extern int Bars.left =5     // надо что бы было здесь и соответственно в окошке настроек
extern int Bars.right =5    // надо что бы было здесь и соответственно в окошке настроек
//----
double UpperFr[];
double LowerFr[];
//----
int Bars.left=5;       //а оно здесь, да ещё участвует в формуле
int Bars.right=5;      //а оно здесь, да ещё участвует в формуле

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexBuffer(0, UpperFr);
   SetIndexBuffer(1, LowerFr);
   //
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   //
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   //
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 159);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int counted=IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;
   int limit=Bars-counted;
//-----
   double dy=0;
     for(int i=1; i<=20; i++) 
     {
      dy+=0.3*(High[i]-Low[i])/20;
     }
   for(i=1+Bars.right; i<=limit+Bars.left; i++)
     {
      UpperFr[i]=0;
      LowerFr[i]=0;
//----
      if (IsUpperFr(i)) UpperFr[i]=High[i] + dy;
      if (IsLowerFr(i)) LowerFr[i]=Low[i] - dy;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsUpperFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);

      if (High[bar] < High[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (High[bar] < High[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsLowerFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);
      if (Low[bar] > Low[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (Low[bar] > Low[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
 

お試しください

//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "© 2007 Takbir"
#property link      "www.stigal.com"
//----
#define major   1
#define minor   1
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_width1  1
#property indicator_width2  1
extern int Bars.left =5;     // надо что бы было здесь и соответственно в окошке настроек
extern int Bars.right =5;    // надо что бы было здесь и соответственно в окошке настроек
//----
double UpperFr[];
double LowerFr[];
//----
//int Bars.left=5;       //а оно здесь, да ещё участвует в формуле
//int Bars.right=5;      //а оно здесь, да ещё участвует в формуле

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexBuffer(0, UpperFr);
   SetIndexBuffer(1, LowerFr);
   //
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   //
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   //
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 159);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int counted=IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;
   int limit=Bars-counted;
//-----
   double dy=0;
     for(int i=1; i<=20; i++) 
     {
      dy+=0.3*(High[i]-Low[i])/20;
     }
   for(i=1+Bars.right; i<=limit+Bars.left; i++)
     {
      UpperFr[i]=0;
      LowerFr[i]=0;
//----
      if (IsUpperFr(i)) UpperFr[i]=High[i] + dy;
      if (IsLowerFr(i)) LowerFr[i]=Low[i] - dy;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsUpperFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);

      if (High[bar] < High[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (High[bar] < High[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsLowerFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);
      if (Low[bar] > Low[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (Low[bar] > Low[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+


 
BeerGod:

これを試してみてください、エラーなしでコンパイルできます、機能性は確認していません)


ガッカリだ...。まずはこの1枚から...。まさにこの1枚から...。リンクを貼ったのは私ですが...。そして、なぜかうまくいかなかった...。ありがとうございました。
 
hoz:

アーテム、お前みたいにジュース飲めよ。ビールはお勧めしませんが...。勧めないけど...。:)

え...アルコールはもう8年前から取りたくありませんね〜興味ないし・・・。:)

健康へのご配慮に感謝します ;)

 
hoz:

ただ、不必要な条件や検査は資源の無駄遣いだと思います。
そうですね...コーリャおじさんに報告するより、必要なチェックをいくつか省略するほうがよっぽど簡単だ...。
 
Allis:

ガッカリだ...。そこから始めて...。まさにこの1枚から...。リンクを貼ったのは私ですが...。そして、なぜかうまくいかなかった...。ありがとうございました。
単純に変数宣言の 後にセミコロンを付けなければならないのに、それがなかったからうまくいかなかったのでしょう。
 

標準的なローソク足を別の角度から見るために、タイムラインを左から右に動かしてみます。 時間足のローソク足は、00分ではなく、例えば10分や20分で始まり、終了するようにします。

いくつかの追加情報が得られます。日足ローソク足でも同様 - 時間単位でずらす(例:open sessio).csvアーカイブをエクセルで編集するようになったが、非常に時間がかかる。分をずらして残りの時間枠を再計算するという、何か他の解決方法があるのかもしれませんが、どなたか教えてください。

 
Operr:

標準的なローソク足を別の角度から見るために、タイムラインを左から右に動かしてみます。 時間足のローソク足は、00分ではなく、例えば10分や20分で始まり、終了するようにします。

いくつかの追加情報が得られます。日足ローソク足でも同様 - 時間単位でずらす(例:open sessio).csvアーカイブをエクセルで編集するようになったが、非常に時間がかかる。多分、誰かが、分をずらして、残りのTFを再計算する他の解決策を見ることができます。


period_converter スクリプトを使用して、ローソク足のクロップ条件を変更することができます。例えば、一目でわかるように、x時間10分のローソク足を取得する。

      if(time0>=i_time+periodseconds || i==0)

置き換える

      if(TimeMinute(time0)==10 || i==0)

とか)))