if (bay_min == true) datetime T=Time[0] //сработал сигнал на покупку запоминаем время бараif(iBarShift(NULL,0,T)==2) //по времени, сигнал был на 2 баре
{
if (Open[1]<Close[1] && Open[2]<Close[2] ) //и эти бары бичьи
{
// что-то делаем
}
}
// я думаю, как-то так.
現時点でのタスクは、fastMaが slowMaを 上方に横切った...というものです。ということで、どこで買えばいいのか探しているところです。次に、価格すなわちアスク(買いを検討しているため)がfastMa( 正確な値はなく、ある程度の偏差が必要で、これはi_thresholdFromMaで 変更します)に達するまで待ちます。価格がfastMa +- i_thresholdFromMaに 達するとすぐに Expert AdvisorはBUYSTOPを (fastMa + buyHear * pt)に設定すべきです。
私が考え出したものは、ある端末では動作せず、別の端末では常に動作するわけではありません。全体的に何かがおかしい。
ここでbuyHear機能の最後のバリエーション。
以下は入力パラメータです。スクリーンショットでエラーが確認できます(OrderSend()では、価格が赤い杖の上に供給され、スクリーンショットで見た注文は下にあります...)。
数日留守にしていたのですが...。気になるのは、同じパラメータでも、計算に使うワンドと同じようにチャートにワンドが投げ込まれているのか、ということです。もしかしたら、そこに犬が埋まっているのかも?
(それでもコードを掘り下げて分解する時間はなかった)。
私なら、例えば、こんな機能を作ります。
を呼び出して、パラメータを取得します。
こんにちは!アドバイスお願いします。インジケーターのシグナルが買いを誘発しているので、次の2本のローソク足が上向きであることを確認してから注文を出します。
こんにちは!アドバイスお願いします。買いシグナルが発生したら、次の2本のローソク足が上向きであることを確認してから注文を出します。
そこで、直近の2本のローソク足の上昇と、2本前の注文を同時に開ける条件を確認します。
そこで、最後の2本のローソク足が上がっていることと、2本後ろのバーを同時に注文を開ける条件を確認します。
どうすればいい?
そして、そうであれば、信号がトリガされ、確認のために待つだけ2バーを上下にバーの後。
シグナル発生時のバー、シグナル発生後のバーを記憶し、その2つが上昇か下降かを比較し、そして......というのが必要です。
どうすればいい?
シグナルが動作した場合、我々は確認を待つが、バーが上または下に行った後。
それは、信号の上のバー、信号の後のバーを覚えて、2つが上昇または下降している場合、それらを比較し、次に......する必要があります。
どうすればいい?
シグナルが動作した場合、我々は確認を待つが、バーが上または下に行った後。
それは、信号の上のバー、信号の後のバーを覚えて、2つが上昇または下降している場合、それらを比較し、次に......する必要があります。
簡単なExpert Advisorを作成していますが、多くの問題に遭遇しています。
その条件は
現在のバーの終値を記憶し、前の4本目のバーがスライドバーであればStartpriceという変数に入力しています。
条件を満たした場合、そのバーの終値(Startprice)を示すアイコンを描画します。
私が得たものは、アイコンが描画されることですが、一度だけです。
バーの終値が0.00001のStartprice価格と一致しないのですが、なぜですか、どのように修正すればよいですか。
四捨五入や5桁へのトリミングを試みても、うまくいきませんでした(
印刷を使ったログでは、Startpriceという値で、4桁以下までの数字しか表示されません。
端末のデータウィンドウと同じ精度を実現するには?
この小数点の問題は、スライダー自体にも当てはまります。printでその値を呼び出すと、4桁以上のログは取得できない。
出力には DoubleToStr(number, Digits) を使用します。Digitsの代わりに、好きな精度を書くことができます。アイコンを設定するバーの時刻をアイコン名に追加します。
そうすれば
it's not working, it's blaming '=' - incompatible types C:\fortestexpertsne.mq4 (34, 14)
どう書けば正しいのか?
返信ありがとうございます、一週間悩みました )
DoubleToStr(number, Digits)を使用します。Digitsの代わりに、希望する精度を書くことができます。設定するアイコンの名前にバータイムを追加します。 。
が、出力については、プリンタは4桁以下しか印刷しないとのことですが、どうなんでしょうか?
then ifPrint(DoubleToStr(Startprice,5)); // Startpriceを表示する。
が5つ出ます。
しかし、ここではバーの時刻を追加する方法を説明します。
このラインは、バーの時間を追加していない?