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

 
AlexeyVik:
確認していないが、自分で確認することを妨げるものは何か?EA名の下にすべてのインジケータを含むテンプレートを保存しておけば、テスターでEAを起動したときにすべてのインジケータが読み込まれ、おそらく 正しく動作するはずです。しかし、「取引」タブや「口座履歴」タブから値を取得する可能性があります。
試してみました。まだです。もう一度挑戦してみます。
 
kosmos0975:
試してみました。まだ見れない。もう一度やってみます。
指標をこんなに混乱させる必要があるのでしょうか。Expert Advisorに全部入れた方が楽なのでは?
 
AlexeyVik:
こんなにも指標を歪める必要があるのでしょうか。Expert Advisorにすべてを押し込む方が簡単ではないか?

時間が経つと、Expert Advisorが正しく動作するための条件が追加され、柔軟性に欠けるようになります。

(多分、変態です。私たちロシア人は安易な道を探しません:)

 
こんにちは。
EAで "Market is closed "を定義するにはどうしたらよいですか?
 
abeiks:
Good day! Expert Advisorで "Market is closed "を定義するにはどうしたらいいですか?

なぜ、そんなことをしたいのですか?マーケットが閉じて いる場合、ティックが表示されないため、Expert Advisor は機能しません。

でも、どうしても必要なときは、これを試してみてください。

MarketInfo(Symbol(), MODE_TRADEALLOWED);

市場が開いている場合は1を返し、市場が閉じている場合は0を返します)。

 

ここがポイントなのですが、例えば過去100本のバーの最小値と最大値を決めて、価格が下がった時/上がった時の上昇/下降を確定して、1 2 3のような反転パターンを描けるようにしたいのですが、どうしたらいいでしょうか?ArrayMaximum関数と iHighest関数の 違いがよくわかりません。私の理解が正しければ、その計算結果は、配列の指定された区間での最大バーのインデックスだけになるのでしょうか?教科書の問26の例のように、計算のために配列を扱う場合、for演算子を使う必要があるのでしょうか? このコードを次のように変更しました。

//multiprice.mq4 // MQL4.manualの例として使用するために設計されました。 // extern int Quant_Bars=100; // バー数 //---------------------------------------------------------------- int start() // 特殊関数 start { int i; // バー番号 double Minimum=Bid, // 最低価格 Maximum=Bid; // 最高価格 for(i=0;i<=Quant_Bars-1;i++) // ゼロから (!) まで .) if (Low[i]< Minimum) // If < known Minimum=Low[i]; //then will be Min if (High[i]> Maximum) // If > known Maximum=High[i]; // then will be Max double Level_1, // Signal level 1 Level_2, // Signal level 2 Price; // Current price Level_1=Minimum; // Set minimum level Level_2=Maximum; // Set maximum level Price=Bid.Price; // Set the Maximum price is a price;                                  // 価格を要求 if (Price<Level_1) { // 複合条件のチェック Alert("A pattern for sale has been formed"); } if (Price<Level_2) { // 複合条件のチェック Alert("A pattern for buying has been formed"); // 報告 } return; } //----------------------------------------------------- しかし、最小または最大の変化時にのみシグナルを出すべきであるのに、なぜか毎ティックで買いパターンが生成されます。  
 
silachara:

なぜ、そんなことをしたいのですか?マーケットが閉じている場合、ティックが表示されないため、Expert Advisor は機能しません。

でも、どうしても必要なときは、これを試してみてください。

市場が開いている場合は1を返し、市場が閉じている場合は0を返します)。

ありがとうございます。
情報についてはティック間の時間を計算したいのですが。
OnTimer()を使っています。
 
Deniskaaa:

ここがポイントなのですが、例えば過去100本のバーの最小値と最大値を決めて、価格が下がったとき/上がったときの上昇/下降を確定して、1 2 3のような反転パターンを描けるようにしたいのですが、どうすればいいですか?ArrayMaximum関数とiHighest関数の違いがよくわかりません。私の理解が正しければ、その計算結果は、配列の指定された区間での最大バーのインデックスだけになるのでしょうか?教科書の問題26のように,配列を扱う場合,計算にはfor文が必要でしょうか? このコードを次のように変更してみました。




このシグナルで取引したいのであれば、やめたほうがいい。プログラミングを学んだら、正しく書きましょう。

二重

   Level_1, // シグナルレベル1 Level_2, // シグナルレベル2 Price; // 現在の価格
を上にしています。
for(i=0;i<Quant_Bars-1;i++)for(i=0;i<Quant_Bars; i++)に置き換えます。
{
	 if (Low[i]< Minimum) // If < known	 Minimum=Low[i]; // then will be min	 if (High[i]> Maximum) // If > known	 Maximum=High[i]; // then will be max.
}
中括弧を追加しました。
if (価格<レベル_2) 符号を変更if (価格>レベル_2) トップより上
 
kosmos0975:

もし、これらのシグナルで取引したいのであれば、しないでください。プログラミングを学ぶなら、正しく書こう。


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

ファイルの扱い方を学び始める。ハンドルネームという言葉に出会いました。コードを書いた後に疑問が湧いた。

int filehandle;
filehandle=FileOpen("news.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);
filehandle=FileOpen("news150901.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);

最初の news.csv ファイルを開いた後、プログラムは filehandle 変数を 1 に設定しました。次に、2つ目の news150901.csv ファイルを開き、filehandle 変数を 2 に設定しました。2つ目のファイルを開いた時のハンドル値だけがプログラムに残っていることが判明しました。つまり、最初に開いた ファイルのハンドル値を殺してしまったのです。I.e.データ/コンテンツにのみアクセスし、2番目のファイルを閉じることができますか?開いているファイルのハンドルを格納するために1つの変数を使用することは間違いですか?開いているファイルのハンドルを格納するために1つの変数を使用するのは間違いでしょうか?

理由: