if (Ask-SlowMA<dist) Lot == Lot1; if (SlowMA-Bid<dist) Lot == Lot1; if (Ask-SlowMA>dist) Lot == Lot2; if (SlowMA-Bid>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot1; if (Ask-SlowMA>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot2;
if (Ask-SlowMA<dist) Lot == Lot1; if (SlowMA-Bid<dist) Lot == Lot1; if (Ask-SlowMA>dist) Lot == Lot2; if (SlowMA-Bid>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot1; if (Ask-SlowMA>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot2;
が、このモードを有効にするにはどうしたらいいのでしょうか?
テスターウィンドウの左下にあるチェックボックスにチェックを入れます。
こんにちは、Guruです。
私が正しい道を歩んでいるかどうか、教えてください。
目的:MAからの距離による敷地面積の可変性を導入する。
入力パラメーターに
extern double Lot1 = 0.01; // 最初のロットのバリエーション
extern double Lot2 = 0.03; // 2番目のロットのバリエーション
extern int Distan = 20; // SlowMAからの距離
MaはExpert Advisor本体に定義されています。
double SlowMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);
さらに、現在の価格(方向によってBidまたはAsk)がDistant sizeまでであれば、最初のロットサイズを使用し、それ以上であれば、2番目のものを使用するという条件も必要です。
真っ先に思い浮かんだのは
if (Ask-SlowMA<Distan)ロット==Lot1;
if (SlowMA-Bid<Distan)ロット==Lot1;
if (Ask-SlowMA>Distan)ロット==Lot2;
if (SlowMA-Bid>Distan) Lot == Lot2;
でも、うまくいかないんです。ロット接続か一般的なロジックのどちらかに誤りがある。
ありがとうございました。
こんにちは、Guruです。
私が正しい道を歩んでいるかどうか、教えてください。
目的:MAからの距離による敷地面積の可変性を導入する。
入力パラメーターに
extern double Lot1 = 0.01; // 最初のロットサイズ
extern double Lot2 = 0.03; // 2番目のロットのバリエーション。
extern int Distan = 20; // スローマからの距離
Expert Advisorの本体で定義されたMa:
double SlowMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);
さらに、現在の価格(方向によってBidまたはAsk)がDistant sizeまでであれば、最初のロットサイズを使用し、それ以上であれば、2番目のものを使用するという条件も必要です。
真っ先に思い浮かんだのは
if (Ask-SlowMA<Distan) Lot == Lot1;
if (SlowMA-Bid<Distan) Lot == Lot1;;
if (Ask-SlowMA>Distan) Lot == Lot2;
if (SlowMA-Bid>Distan)ロット==ロット2;
でも、うまくいかないんです。Lotとの連携ミスか、一般的なロジックでのミスか。
よろしくお願いします。
Bid と Ask は、最後に判明した入札価格と売呼値、すなわち現在の価格です。
SlowMAは私の改名したMaです。
(double SlowMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);)
現在の価格(BidまたはAsk)とMa(SlowMA)の乖離は、Distansより大きくても小さくてもかまいません。これによって、1ロット目か2ロット目のどちらかを設定する必要があります。
入金額や未決済注文の数によってロットを変えるというバリエーションもありましたが、このような直線的な項では反応が得られないのです。
なんか、絶対値を返す関数が必要な気がする。つまり、負の数に適用すれば、結果は正になる。
Bid と Ask は、最後に判明した入札価格と売呼値、すなわち現在の価格です。
SlowMAは私の改名したMaです。
(double SlowMA = iMA(NULL,60,periodSlowMA,0,MODE_EMA,PRICE_MEDIAN,0);)
現在の価格(BidまたはAsk)とMa(SlowMA)の乖離は、Distansより大きくても小さくてもかまいません。このため、1ロット目か2ロット目のどちらかを設定する必要があります。
入金額や未決済注文の数によってロットを変えるというバリエーションもありましたが、このような直線的な項では反応が得られないのです。
なんか、絶対値を返す関数が必要な気がする。つまり、負の数に適用すれば、結果は正になる。
BidとMAの差の絶対値は後で少し必要になるかもしれませんが、ヒントがないので、一緒に計算してみましょう。
ビッド=1.12730。
MA=1.12530です。
Distans = 20;
質問です。
1.1273から1.1253がいつ、20を超えるかどうか?
なぜか私の計算機では0.002としか表示されない。でも、20歳までは遠いな...。
ありがとうございます、そうですか。あるいは、こんな風にもできます。
dist=Distan*Point。
if (Ask-SlowMA<dist) Lot == Lot1;
if (SlowMA-Bid<dist) Lot == Lot1;
if (Ask-SlowMA>dist) Lot == Lot2;
if (SlowMA-Bid>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot1; if (Ask-SlowMA>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot2;
では、どうすれば正しくできるのでしょうか?
ありがとうございます、そうですか。あるいは、こんな風にもできます。
dist=Distan*Point。
if (Ask-SlowMA<dist) Lot == Lot1;
if (SlowMA-Bid<dist) Lot == Lot1;
if (Ask-SlowMA>dist) Lot == Lot2;
if (SlowMA-Bid>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot1; if (Ask-SlowMA>dist) Lot == Lot2.If (Ask-SlowMA<dist) Lot == Lot2;
では、どうすれば正しくできるのでしょうか?
そして、MathAbs()を使って、何から何を引くかというトラッキングで考えすぎるのをやめる ことができるようになったのです。そして、もう一つ面白い条件演算子があります
Lot = MathAbs(Ask-SlowMA) < dist ? Lot1 : Lot2;
つまり、Ask-SlowMAがdistより小さい場合、Lot変数にLot1の値が割り当てられ、そうでない場合、Lot2の値が割り当てられます。
もう一つお勧めしたいのは、「Point」変数 についてです。PointまたはPoint()関数を使用する
まだまだ勉強中の身なので、助けてほしい...。
そして、MathAbs() を適用することで、何から何を引く かを把握する必要がなくなるようになりました。そして、もう一つの興味深い条件演算子
つまり、Ask-SlowMAがdistより小さい場合、Lot変数にLot1の値が割り当てられ、そうでない場合、Lot2の値が割り当てられます。
もう一つお勧めしたいのは、「Point」変数についてです。PointまたはPoint()関数を使用する