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

 
Vinin >> :

iは何に相当するのか?

基本的なことを示したかっただけなのですが、iは次のように定義されています。

   int counted_bars = IndicatorCounted(), i;
   i = Bars - counted_bars - 1;

   while( i>=0) {


すなわち、最も高いバーから始まり、ゼロになる。

インジケータを起動したままにしておくと、iの値が0のときからすべてが動き出します。

など)がありますが、履歴には何もありません。もしかしたら、配列の定義と関係があるのかもしれないと思ったのです

 
chief2000 писал(а)>>

私は基本的なことだけを示したかったのですが、iは次のように定義されています。

つまり、最も高いバーから始まり、ゼロになる。

インジケータを起動したままにしておくと、iの値が0のときからすべてが動き出します。

など)がありますが、履歴には何もありません。もしかしたら、配列の定義と関係があるのかもしれないと思ったのです

そうすると、インジケーターの全コードを表示しなければならなくなります。

 
Vinin >> :

それから、インジケーターの完全なコードを表示する必要があります。

以下はそのコードです。問題に関係のないものはすべて削除しました。

 
#property indicator_chart_window
#property indicator_buffers 4



int    i;


// ------------------------------------------------------
extern int RSI_Periods = 14;
extern int Percent_K   = 14;

//---- buffers
// double Buffer1[];
double Buffer1[99000];

// double Current_RSI,Lowest_RSI,Highest_RSI,sum_K;
// ------------------------------------------------------




  
int init() {
   return(0);
}




// -------------------------------------------------------------------------------
int start() {

   int counted_bars = IndicatorCounted(), i;
   i = Bars - counted_bars - 1;

   while( i>=0) {

// ============================================================================================
      double Current_RSI, Lowest_RSI, Highest_RSI;


      Current_RSI    = iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, i);
      Highest_RSI    = Current_RSI;
      Lowest_RSI     = Current_RSI;

      for(int x= i+1; x<= Percent_K+ i+1; x++){
         Lowest_RSI  = MathMin( Lowest_RSI, iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, x));
         Highest_RSI = MathMax( Highest_RSI,iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, x));
      }


      Buffer1[ i]     = (( Current_RSI- Lowest_RSI) / ( Highest_RSI- Lowest_RSI)) * 100;
// ============================================================================================



   Comment(
      "\n",
      "\n",
      "\n",
      "\n",
      "\n", "Current_RSI = "  , Current_RSI,
      "\n", "Highest_RSI = "  , Highest_RSI,
      "\n", "Lowest_RSI = "  , Lowest_RSI,
      "\n", "Percent_K = "  , Percent_K,
      "\n", "((Current_RSI-Lowest_RSI) / (Highest_RSI-Lowest_RSI)) * 100 = "  , (( Current_RSI- Lowest_RSI) / ( Highest_RSI- Lowest_RSI)) * 100,
      "\n", "iRSI(NULL,0,RSI_Periods,PRICE_TYPICAL,i) = "  , iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, i),
      "\n", "i = "  , i,
//      "\n", "Percent_K = "  , Percent_K,
//      "\n", "Percent_K = "  , Percent_K,
      "\n",
      "\n",
      "\n", "Buffer1[i+30] = ", Buffer1[ i+30],
      "\n", "Buffer1[i+12] = ", Buffer1[ i+12],
      "\n", "Buffer1[i+1] = ", Buffer1[ i+1],
      "\n", "Buffer1[i] = "  , Buffer1[ i],
      "\n",
      "\n"
   );


      i--;
   }


   return(0);
}
 

どこから書くか void ManagePositions() by knowledgeable conditions

アレイがあります
for (tf = 0; tf < 5; tf++)
{
......
int TF[tf] - タイムフレーム{5,15,30,60,240}.
int signal[tf] - "1" - 買い
- "2" - クローズ購入
- "-1" - 売却
- "-2" -クローズ売り
int mn_b[tf] - 全ての時間枠で異なるmagic_number_buy。
int mn_s[tf] - 全ての時間枠で異なるmagic_number_sell。
}

べきである。
かいほうてき
タイムフレーム5.15で、3つの注文まで一方向に開く。
- 1MMオーダー=1MONEY
- 2 MMオーダー=2
- 3 MMオーダー=3
時間枠30で片道最大2つの注文を開ける。
- 1 MMオーダー=2
- 2 MM = 3

時間枠60で片方の注文を片方に出す。
- 1MMオーダー=3

タイムフレーム240が開かない時

異なる条件による2次、3次の希釈率

合計で片側に9個以上の注文を受けることはない

閉じる
時間枠クローズ売りシグナルが表示されたら、指定された時間枠のすべての売り注文をクローズします。
時間枠クローズ買いシグナルが表示されたら、現在の時間枠のすべての買い注文をクローズする


よろしくお願いします。

 

チケットや注文番号が、指定されたマジックナンバーの最初のものであることが分かっている場合、どのように識別するのかについて説明してください。

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

 

I. Kimのブランチ「KimIVからの便利な機能」

GetTicketLastPos()関数。19ページ
この関数は、最後のオープンポジションのチケットまたは-1を返します。
関数 GetIndexLastPos()です。P.17
説明: 最後に開いた位置のインデックスまたは-1を返す。
関数IndexByTicket()です。P.12
チケットによる注文またはポジションのインデックス(セットオーダーまたはオープンポジションの一般的なリストにおけるインデックス番号)を返します。IndexByTicket()が必要なチケットの注文またはポジションを見つけられなかった場合、-1を返します。





 
rid >> :

I. Kimのブランチ「KimIVからの便利な機能」

GetTicketLastPos()関数。19ページ
この関数は、最後のオープンポジションのチケットまたは-1を返します。
関数 GetIndexLastPos()です。P.17
説明: 最後に開いた位置のインデックスまたは-1を返す。
関数IndexByTicket()です。P.12
チケットによる注文またはポジションのインデックス(セットオーダーまたはオープンポジションの一般的なリストにおけるインデックス番号)を返します。IndexByTicket()が必要なチケットの注文またはポジションを見つけられなかった場合、-1を返します。





ご協力ありがとうございました

 
chief2000 >> :

これがそのコードです。問題に関係のないものはすべて削除しました。


原因がわかりました。

i = Bars-30 - counted_bars - 1;

ではなく、.

i = Bars - counted_bars - 1;


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

 

上記の私のコードに関するもう一つの基本的な質問 - まったく同じIndicatorが別々に実行されます。

で、メインウィンドウの下のウィンドウに線を描 きます(別のものは上のウィンドウに他のグラフィカルオブジェクトを追加します)。

while()内の2つのforループは、顕著にコンピュータに負荷を与えています。

- 上部に長方形や矢印などを作成し、線はできますか?

(RSI型カーブ)を底に?