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

 
Forexman77:
取引が開始されたバーの高値または安値にストップを設定する方法を教えてください。

高ければstopの代わりにHigh[ ]、低ければLow[ ]ですが、2つのことに注意してください。


1.販売店が設定したスプレッドとストップまでの距離です。

2.形成されつつあるバーに正しくストップを置くことはできません。つまり、High[0]です。しかも、過去のバーだけ。I.e. High[1]など。

 
satorifx:

こんにちは。

プログラムで2つの座標系をグラフでリンクさせる方法を教えてください。(X,Y)と(time,price)ですか?チャート上の最低価格に常に位置する座標(X,Y)を持つラベルが必要です。

artmedia70 です。
違いがあります。チャート全般、つまり端末で利用可能なすべての履歴、または可視チャート(モニター画面内)においてですか?


モニター画面内の可視チャートに正確に表示

 
satorifx:

モニター画面内の可視グラフに正確に表示

このスクリプトをチャートに投影してください。

//+------------------------------------------------------------------+
//|                                       sc_LowestPricePerChart.mq4 |
//|                               Copyright 2013, Artyom A. Trishkin |
//|                          artmedia70@gmail.com, Skype: Artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Artyom A. Trishkin"
#property link      "artmedia70@gmail.com, Skype: Artmedia70"
//+------------------------------------------------------------------+
//|           script program start function                                    |
//+------------------------------------------------------------------+
int start() {
   int count=WindowBarsPerChart();                             // количество видимых баров 
   int LowestBar=iLowest(Symbol(),Period(),MODE_LOW,count,0);  // бар с минимальной ценой
   double LowestPricePerChart=Low[LowestBar];                  // минимальная цена из видимых баров
   SetArrow(5, Yellow, "sc_LowestPricePerChart_LowestPrice", Time[LowestBar], LowestPricePerChart, 1);
   return(0);
}
//+------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_ARROWCODE, cd);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//+------------------------------------------------------------------+

最大値も同様に

 
artmedia70:

このスクリプトをチャートに投影してください。

最大値も同様に


ポイントは、ARROW オブジェクトは座標(時間、価格)を持っているが、座標(x,y)を持っていないことである。画面下部のインジケータウィンドウを伸ばすと、オブジェクトはウィンドウと一緒に移動しますが、同時にウィンドウ内のオブジェクトの座標(x,y)が変化し、2つの座標系が接続されていないため計算できません。原理的には、ARROW オブジェクトの代わりにTEXT オブジェクトなどを使用することもできますが、これでは問題が解決しません。
 
satorifx:
ポイントは、ARROW オブジェクトは座標(時間、価格)を持っているが、座標(x,y)を持っていないことである。画面下部のインジケータウィンドウを大きくすると、オブジェクトはウィンドウと一緒に移動しますが、同時にウィンドウ内のオブジェクトの座標(x,y)が変化し、2つの座標系が接続されていないため計算することができなくなります。原理的には、ARROW オブジェクトの代わりにTEXT オブジェクトなどを使用することもできますが、これでは問題が解決しません。

では、白を熱に結びつけましょう。目に見えるバーでの最低 価格を知る方法と、チャート上にマークする方法をご紹介しました。

あとは、あなたの曖昧な希望的観測です ;)

削除済み  
Sepulca:



意味がよくわからないのですが?ファイルがない(開かれていない)、または読み込みエラーが発生した場合。メッセージを出したはずなのに、ニュースがない...。
 
このコードは、取引を開始したバーで、スパイクが形成された場合、スパイクのあるバーのすぐ次のバーで、ポジションからの退出がありますが、取引を開始した後のバーで、スパイクが発生したシグナルは無視されるように記述する必要があります。スパイクを記述しているコードに問題はありません。難しいのは、取引が開始されたバーだけを使用するよう、プログラムに指示する方法です。
 
Forexman77:
取引開始のバーにおいて、スパイクが発生した直後のバーでスパイクが形成された場合はポジションを終了し、取引開始のバー以降でスパイクが発生したバーのシグナルは無視するようにコードを記述する必要があります。スパイクを記述しているコードに問題はありません。難しいのは、取引開始のバーだけをシグナルに使用するよう、プログラムに指示する方法です。 。
取引には開始時間がある OrderOpenTime();時間ごとにバーの数を 表示する関数がある iBarShift(); このバーを「・・・取引開始時のバーだけをシグナルに使う・・・」として使用します。
 
artmedia70:
トレードには開始時間があります OrderOpenTime(); そして、時間でバー番号を表示する関数があります iBarShift(); これはバーで、「...シグナルには、トレードが開いているバーだけを使用すること...」として使用します。

ありがとうございます、調べてみます。
 
Zolotai:

意味がよくわからないのですが?ファイルがない(開かれていない)、または読み込み時にエラーが発生した場合。メッセージが出るはずなのに、ニュースが出ない...。

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,";");// ファイルをオープンする。

FILE_WRITE と FILE_READ を組み合わせない場合、長さゼロのファイルを開くことになる。開く前のファイルにデータがあったとしても、破棄されます。
既存のファイルにデータを追加したい場合は、FILE_READ | FILE_WRITE の組み合わせでファイルを開く必要があります。.
FILE_READ と FILE_WRITE を組み合わせない場合、ファイルが既に存在する場合のみ、ファイルをオープンする。ファイルが存在しない場合は、FILE_WRITE モードで作成することができます。