初心者なのですが、HAを新しいウィンドウで表示させたいのですが...。 - ページ 2

 
ObjectCreate()関数でウィンドウ番号を指定し、別ウィンドウで描画します。
 

Phyさん、こんにちは。

今朝から試してみましたが、何も表示されません。あなたのコードは、私が他のことに集中し始めることができるように、本当に役に立つでしょう

私はオブジェクトの作成を使用しました

を使いましたが、画面には何も表示されませんでした。

コードやオブジェクトの作成 機能を使用してローソク足を取得するための例を提供してください非常に感謝します。

 
以下はそのサンプルです。

単純な棒グラフを描画します。

#property indicator_separate_window
 
#property indicator_buffers 2
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
 
 
double high[];
double low[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
    SetIndexBuffer(0, high);
    SetIndexBuffer(1, low);
    SetIndexStyle(0, DRAW_LINE);
    SetIndexStyle(1, DRAW_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
 
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
  
   string basename = "test";
   IndicatorShortName(basename);
   int window = WindowFind(basename);
  
   for (int i = Bars-100; i >= 0; i--){
  
       // these two indexes are used to control the size of the subwindow
       // they are not visible
       high[i] = High[i];
       low[i] = Low[i];
 
       string name = basename+i;
  
       if(ObjectFind(name) != -1) ObjectDelete(name);
       ObjectCreate(name, OBJ_TREND, window, Time[i], High[i], Time[i], Low[i]);
       ObjectSet(name, OBJPROP_RAY, 0);
   }
   return(0);
  }
 

こんにちは、Phyは、コードをありがとう、しかし、コードはキャンドルスティックバーを作成しません、それはラインバーを作成します。私はキャンドルスティックバーのための何かを必要とするplzz.zz,>。

私はとても困惑しているなぜそれがこれらの関数を 使用してローソク足のバーを作成するのは難しいのですか?

どうか助けてください。

あなたのサポートをありがとうございました

 
そこで、本体を追加します。


...
...
string name = basename+i;
  
   if(ObjectFind(name) != -1) ObjectDelete(name);
       ObjectCreate(name, OBJ_TREND, window, Time[i], High[i], Time[i], Low[i]);
       ObjectSet(name, OBJPROP_RAY, 0);
   }
   name = basename+"Body"+i;
  
   if(ObjectFind(name) != -1) ObjectDelete(name);
       ObjectCreate(name, OBJ_TREND, window, Time[i], Open[i], Time[i], Close[i]);
       ObjectSet(name, OBJPROP_WIDTH, 3);
       ObjectSet(name, OBJPROP_RAY, 0);

   }
...
...
 

やっとこさ動作するようになりましたが、ローソク足が上下にぶかぶかです。


#プロパティindicator_separate_window

#property indicator_buffers 5
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE


double high[];
double low[];
double open[];
double close[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE)を設定します。
SetIndexStyle(1, DRAW_LINE)を設定します。
SetIndexStyle(2, DRAW_LINE).SetIndexStyle(2,DRAW_LINE)。
SetIndexStyle(3, DRAW_LINE).SetIndexStyle(2,DRAW_LINE)。
SetIndexBuffer(0, high)を設定します。

SetIndexBuffer(1, low);
SetIndexBuffer(2、open);
SetIndexBuffer(3、close);


return(0);
}
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int deinit()
{

return(0);
}
//+------------------------------------------------------------------+
//| カスタムインジケータイテレーション関数
//+------------------------------------------------------------------+
int start(){

string basename = "Heikin-Ashi";
IndicatorShortName(basename);
int window = WindowFind(basename)。

for (int i = Bars-100; i >= 0; i--){

// これら2つのインデックスは、サブウィンドウのサイズを制御するために使用されます。
// これらは表示されません
high[i] = High[i];
low[i] = Low[i];
double haOpen, haHigh, haLow, haClose,haDiffCo;
haOpen=(Open[i+1]+Close[i+1])/2;
open[i] = haOpen;
haClose=(Open[i]+High[i]+Low[i]+Close[i])/4;
close[i]=haCloseとする。
haHigh=MathMax(haOpen,High[i]);
haLow=MathMax(haOpen,Low[i])。
文字列 name1 = "Heikin-Ashi-HL-"+i;

if(ObjectFind(name1) != -1) ObjectDelete(name1);
ObjectCreate(name1, OBJ_TREND, window, Time[i], haHigh, Time[i], haLow);
ObjectSet(name1, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name1, OBJPROP_RAY, 0);
ObjectSet(name1, OBJPROP_WIDTH, 1)。

文字列 name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(name2);
ObjectCreate(name2, OBJ_TREND, window, Time[i], haOpen, Time[i], haClose);
ObjectSet(name2, OBJPROP_WIDTH, 3);
//ObjectSet(name2, OBJPROP_STYLE, STYLE_SOLID).ObjectSet(name2,OBJPROP_STYLE,SOLID)です。
ObjectSet(name2, OBJPROP_RAY, 0);

if (haOpen < haClose) {。
ObjectSet(name1, OBJPROP_COLOR, Chartreuse);
ObjectSet(name2, OBJPROP_COLOR, Chartreuse);
}else{
ObjectSet(name1, OBJPROP_COLOR, Red);
ObjectSet(name2, OBJPROP_COLOR, Red)。
}

}

return(0);
}

 
smugged "とは何ですか?

また、あなたのコードでは、ローワーテイルがないことに気がつきました。
あなたのHAの計算が完全に正しいとは思えません。
 

Phyさん、ありがとうございます。

スマギャンは、ボディが長方形でなく、端が曲がっていることを意味します。その通り、底面がないんです。なぜなんでしょう?


どうすれば、価格チャートのような完全な矩形を作ることができるのでしょうか?


質問です。

1.1. インジケータとバッファをトップで宣言し、インデックススタイルをDRAW_LINEとします。 そして、この幅と色でトレンドラインを 挿入して、インジケータを表現します。この場合、バッファはオブジェクト(トレンドライン)を描画するために使用するだけで、上部にインジケータを宣言し、index styleをdraw_lineにする必要がありますか?

これは、両方のdrawlineと挿入オブジェクトのトレンドラインを持っているのは少し混乱している?


あなたの専門家のコメントをお願いし、あなたが私の考え方を修正することができれば感謝します?

 

尾を引いているのが問題でした。

haLow=MathMax(haOpen,Low[i]);

であるべきである

haLow=MathMin(haOpen,Low[i])。

私の前の質問はまだそこに残っているヘルプしてください?

あなたの親切な応答、スマッジは、ボディが適切な長方形ではなく、エッジが曲がっていることを意味します。どのように私は価格チャートのように完璧な長方形の体を作ることができますか?

質問です。

1.1. インジケータとバッファをトップで宣言し、インデックスのスタイルをDRAW_LINEとします。そして、この幅と色でトレンドラインを挿入して、インジケータを表現します。この場合、バッファはオブジェクト(トレンドライン)を描画するために使用するだけで、上部にインジケータを宣言し、index styleをdraw_lineにする必要がありますか?

これは、両方のdrawlineと挿入オブジェクトのトレンドラインを持っているのは少し混乱している?

専門家のコメントと私の考えを修正することができれば感謝します?

 
インジケーターウィンドウは、#property indicator_maximumと#property indicator_minumumを使用して、指定されたサイズにすることができます。

これらが指定されていない場合(私のサンプルでは指定されていません)、インジケータ・ウィンドウは、表示されているインジケータ・インデックスの最高値と最低値を基にサイズ変更されます。
インディケータ・インデックスの最高値と最低値に基づいて、インディケータ・ウィンドウのサイズが変更されます。

決して「トレンドラインを挿入してください」とは言いません...。オブジェクトは特定の時間と価格の属性で描画されます。

インデックス・バッファは、価格が時間と共に変化する際に、サブウィンドウのサイズを適切に調整するために存在します(ただし、見えません)。