[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 228

 
artmedia70:

この変数がすべてのEA機能で利用可能になるかどうかにかかっています(まあ...すべてではありませんが、いくつかは確実にあります)。すると、その変数はグローバルになります。

1つの機能でのみ使用される場合は、ローカルとなります。

花を入れる水は、プレーンと甘酒のどちらか」というような質問です・・・。推理しているうちに、花は箒に・・・。:))

:о)

そういうルールはなんとなくわかったのですが、実際には私のオーダーはうまくいかなかったので、問題を探しながら、いろいろなバリエーションを試したり、スタティックのように変数をグローバルに動かしたりしましたが、関数は1つなのに全部うまくいってしまいました。それが理由かどうかはまだわからないけれども。迷っているので、ここで聞くことにしました。静止画の変数については何も言ってませんね。そんな風に作ったらいいんじゃない?私は理解できない、あなたが(例えば、ティックで)開始を再入力するとき、変数はリセットされますか?スタティックはダメなんですか?その場合、My ticksはゼロになるのでしょうか?

PS くそー、綿密にプログラミングを始めた、グレイルを書いて いる......、草が足りなければ......、もうここの常連のようだ:))

 
drknn:
証券会社のスプレッドが変動制の場合は、EAのスタート機能でスプレッドサイズの自動決定を利用し、スリッページを3スプレッドに設定するなどの工夫をするとよいでしょう。そうすると、滑りがダイナミックに変化するようになります。
それはいいアイデアですね、試してみようかな。ありがとうございます。
 
artmedia70:
まずはスリッページをボラティリティに依存するようにしてみてください。落ち着いた市場なら最小、速い市場なら大きく広がります。

H1での作業では、ローソク足1本のボラティリティを計算するのは難しいでしょうから、計算方法を考える必要がありますね。
 
Fam:

:о)

この理論はなんとなく理解できたのですが、実際には私の注文はうまくいかず、問題を探しながら、多くのバリエーションを試し、変数をstaticとしてグローバルに移動しましたが、機能は同じなのに、すべてうまくいきました。それが理由かどうかはまだわからないけれども。迷っているので、ここで聞くことにしました。静止画の変数については何も言ってませんね。そんな風に作ればいいのかも?私は理解できない、あなたが(例えば、ティックで)開始を再入力するとき、変数はリセットされますか?スタティックはダメなんですか?その場合、My ticksはゼロになるのでしょうか?

PS くそー、綿密にプログラミングを始めた、私は聖杯を書いている......、草が十分であれば......、それは、私が今ここに常連であるようだ:))


ローカル変数とは、任意の関数内部で宣言された変数のことです。ローカル変数のスコープは、その変数が宣言されている関数の本体です。 ローカル変数は、その型に応じた定数または式で初期化することができる。

グローバル変数とは、すべての関数の外部で宣言される変数のことです。グローバル変数のスコープは、プログラム全体です。グローバル変数は、どのレベルでもローカライズされません。グローバル変数は、その型に対応する定数によってのみ初期化することができます(式ではできません)。グローバル変数は、特殊な関数が実行される前に一度だけ 初期化されます。

プログラム内の制御が関数内にある場合、他の関数で宣言されたローカル変数の値は利用できない。グローバル変数の値は、あらゆる特殊関数やユーザー関数から利用可能です。

静的変数

物理的なレベルでは、ローカル変数はそれぞれの関数の一時記憶領域に表現されます。関数内部で宣言された変数を、プログラムのパーマネントメモリに配置する方法があります。そのためには、変数を宣言する際に、変数型の前にstaticという修飾子を指定する必要があります。

静的変数は一度だけ初期化さ れます。静的変数は、その型に対応する定数で初期化することができます(任意の式で初期化できる単純なローカル変数とは異なります)。 明示的に初期化が行われない場合、静的変数はゼロで初期化されます。 静的変数はプログラムメモリの永久領域に格納され、その値は関数が終了しても失わ れることはありません。静的変数のスコープは、宣言された関数の 中だけであり、グローバル変数とは異なり、プログラムのどこからでもその値にアクセスできます。

https://book.mql4.com/ru/variables/types

 
という感じです。それは、関数が終了したときに値が失われない 静的な変数が 作成された場合、我々はすべてのティックで値を失う他のすべての変数が判明した?(STARTが毎ティックで呼び出される場合)
 
Fam:
なんだかスッキリしましたね。その結果、関数から抜けても値が失わ れない静的変数を考案すると、他のすべての変数がカチカチ音を立てるたびに値を失うことが判明しました?(STARTが毎ティックで呼び出される場合)

ローカル 変数はtick毎に再初期化されます。

グローバルは、チケットの保管に使用し、忘れてください。またはアレイを作る(受注会計)。デフォルトでは、すべての配列は静的です。

 
ありがとうございます、そうしました。ただ、底値が知りたいのです。高いシミュレーション品質と低いチャートミスマッチを実現する方法をご存じですか?私やプログラム次第ではなく、悪天候(あるいは好天、解明する必要あり)のような気がします。どうしてソフトウェアがうまくシミュレーションできないのか、私には理解できないのですが、「人」の要素があるのでしょうか?
 
ZZZEROXXX:

H1での作業では、ローソク足1本分のボラティリティを計算するのは難しいと思いますので、計算方法を考える必要がありますね。
18本の小節の平均振幅が明確
 

みなさん、こんにちは。

この質問について、ご教授ください。

EURUSD 通貨ペアのオープニング(Open[i])またはクロージング(Close[i])の正確な値をゼロ以降の5桁の値で取得しようとしていますが、応答では常に丸められた値が得られます!

 
は、ゼロからいくつの数字に丸められますか? ゼロ以降の数字がまったく削除されていない場合、整数(int)変数に価格値を代入 しようとしているのですから、ダブル(double)変数が必要です。