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

 
Crosswert:


ははは...。ここに嘘がある...。

問題はOpenOrders()関数にあることが判明しました。ローソク足(バー)のブレイクダウンでの注文開始の制御を外すのをすっかり忘れていました。

if (Volume[0] > 1) return;

つまり、Expert Advisorがテストしていたのは何TFで、その分、注文を開いていたのか...。

一般的にバカは、ハードで・・・。

ありがとうございます...

よくあることです)))お役に立てたようで嬉しいです)))
 
Crosswert:


if (Volume[0] > 1) return;


新しいバーの開口部を検出するためにチェックのこの種を使用しないでください、それは唯一のテスターで、アカウントでうまく動作しません。バータイムで確認するか、チャート上のバー 数で確認する必要がある

 
Crosswert:


ははは...。ここに嘘がある...。

問題はOpenOrders()関数にあることが判明しました。ローソク足(バー)のブレイクダウンでの注文開始の制御を外すのをすっかり忘れていました。

if (Volume[0] > 1) return;

つまり、Expert Advisorがテストしていたのは何TFで、その分、注文を開いていたのか...。

一般的にバカは、ハードで・・・。

ありがとうございます...

こうすればもっといい(https://www.mql5.com/ru/forum/138609/page482)
bool CheckOpenM15() // Функция возвращает истину при появлении нового бара на М15 (Использовать только в советние)
{
   static int PrevTime=0;
   if (PrevTime==iTime(NULL, PERIOD_M15,0)) return(false);
   PrevTime=iTime(NULL, PERIOD_M15,0);
   return(true);
}
 
paladin80:
こうすればもっといい(https://www.mql5.com/ru/forum/138609/page482)

さらに良い方法は、目的のTFの名前を関数に渡すことです。
 
artmedia70:
さらに良い方法は、目的のTFの名前を関数に渡すことです。

これはあくまで一例です。
 
paladin80:
こうすればもっといい(https://www.mql5.com/ru/forum/138609/page482)


PrevTime / で、一度試したことがあるのですが、うまくいかなかったんです。そのコードを正しい場所に入れることができなかったのでしょう。

とすると、/ if (Volume[0] > 1) return; / すべてがよりシンプルになります。ここでは、私が思うに、選択されたTFに対してすべてが機能するのです。デモで動くかどうかはわかりませんが、注文を開く際にエラーやバグなど細かい点は気になりません。

しかし、新しいバーでの注文開始の制御は、長い間使っていません。オープンポジション制御の機能を構築することに成功しました。一定時間のオープニングオーダーと合わせて、バーコントロールのようなものは必要ないのです。

コードが古いだけです。どうやら、制限を忘れてぶっきらぼうに挿し込んで使い続けてしまったようです...。

 

フィボナッチレベルの価格値を取得する方法を教えてください。

その条件に従って、価格が指定されたフィボナッチレベルを超えたら、買いまたは売りの取引が開始されます。

フィボナッチオブジェクトは、Kimの関数を使用してExpert Advisorで描画されます: https://www.mql5.com/ru/forum/107476/page107#606564

問題なくスムーズに描画されています。しかし、それでは指定されたレベルの価格価値をどうやって知ることができるのでしょうか?

この機能は使えないようです。

OBJPROP_FIRSTLEVEL+n 210+n イント インデックスn のフィボナッチ・オブジェクトのレベル値を取得/設定します。インデックスnは 0~(レベル数-1)で、31を超えることはできません。


可能なのでしょうか?それとも、OBJPROP_PRICE1とOBJPROP_PRICE2を起点として、各レベルの価格を別々に計算すべきでしょうか。

これはナンセンスだ。一晩中、頭を悩ませていました...。もちろん、夜間は解決策を探すのに最適な時間帯ではないだろう。

助けてください、良い人たち

 
Lazarechek:

フィボナッチレベルの価格値を取得する方法を教えてください。

その条件に従って、価格が指定されたフィボナッチレベルを超えたら、買いまたは売りの取引が開始されます。

フィボナッチオブジェクトは、Kimの関数を使用してExpert Advisorで描画されます: https://www.mql5.com/ru/forum/107476/page107#606564

問題なくスムーズに描画されています。しかし、それでは指定されたレベルの価格価値をどうやって知ることができるのでしょうか?

この機能は、どうもしっくりこない。

OBJPROP_FIRSTLEVEL+n 210+n イント インデックスn のフィボナッチ・オブジェクトのレベル値を取得/設定します。インデックスnは 0~(レベル数-1)で、31を超えることはできません。


可能なのでしょうか?それとも、OBJPROP_PRICE1とOBJPROP_PRICE2を起点として、各レベルの価格を別々に計算すべきでしょうか。

これはナンセンスだ。一晩中、頭を悩ませていました...。もちろん、夜間は解決策を探すのに最適な時間ではないだろう。

助けて、良い人たち

すでに似たような質問がありました。

フィボレベルの23.6%で取得したい
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); これは0.236、すなわち価格ではなく、レベルを与えます。
レベルの値段の出し方を教えてください。ありがとうございました。

そして、その答えも出ている。

たった2つの算術演算。掛け算(0.236にレベル0とレベル1の価格差を掛ける)、そして足し算(掛け算の結果をレベル0の価格に足す)。

 
インジケーターを書いて実行したら、すべてがフリーズして、メッセージ-アップデートを待つ(エンドレス・サイクルはない)。Mtを再起動しても結果は同じです。私は起動する前に、これらの指標を削除し、それらを挿入することができることは明らかであるが、この方法で問題を解決するために、毎回、オプションではありません。もしかしたら、コマンドラインから起動して、デフォルトのインターフェースで起動するためのキーがあるのかもしれませんね?
 
artmedia70:

同じような質問がすでに出ています。

フィボレベルの23.6%で取得したい
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); これは0.236、つまり価格ではなくレベルを与えているのです。
レベルの値段の出し方を教えてください。ありがとうございました。

そして、その答えも示された。

たった2つの算術演算。掛け算(0.236にレベル0とレベル1の価格差を掛ける)、そして足し算(掛け算の結果をレベル0の価格に足す)。




親切にありがとうございます!)原則的にそう思っています)


「0.236にゼロから第一水準の価格差を乗じたもの」--ただ、「ゼロから最終 水準の価格差」と言った方が正しいかもしれません。