[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 24

 

すでに稼働していたのだ。長い間開店信号を予測せず、同じタイマーで空気を供給していたのです。

要するに、パウロは死んだのだ。

 
どなたかアドバイスお願いします。些細な疑問なのですが 一日中解けなくて困っています。ローソク足の始点でEAをオープンし、同じローソク足でクローズしたら、新しいローソク足が現れるまでオープンしないようにするにはどうしたらよいでしょうか。ここでの問題は、シグナルが開いたときに、同じローソク足で注文が閉じられたとすると、シグナルは有効ですが、ロボットは始値に対して 書かれているので、もう関係ないのです。方法があったと記憶しているが、思い出せない。
 

というフラグが立っています。

注文が開くと、OrderIsOpened=trueを代入する。新しいローソク 足が開くと - ...=false、といった具合に。

 
tara:

というフラグが立っています。

注文が開くと、OrderIsOpened=trueを代入する。新しいローソク足が開くと - ...=false、といった具合に。

ありがとうございます。そして、新しいキャンドルの オープニングをどのようにコード化するか?
 
kwadrad:
ありがとうございます。そして、新しいキャンドルのオープニングをどのようにコード化するか?


好きなものを好きなだけ-。例えば、こんな感じです。

- TFサイズによって時間が変わる場合(最も簡単な場合)

- 新旧の建値が 異なる場合

同じ「フラグ」技術によるものです。

どういたしまして。

 
kwadrad:
ありがとうございます。また、新しいキャンドルの開封の儀はどのように行うのでしょうか。
検索エンジンで調べる
 
Fartarantula:

こんにちは、親愛なるmqlの皆さん。ここで、私の最初のコード問題が発生します。

トレンド指標である。タスクは、1本目の線=前日と前々日の最大値、2本目の線=前日と前々日の最小値という座標のトレンド指標である。

それはいいとして、下位のタイムフレームに切り替えると、対応する価格水準ではあるが、座標が冒頭にまとわりついている......。と、セリフのセンスが完全に失われてしまう。

トレンドラインオブジェクトを作成する際、datetime パラメータは非難されます。どうすればいいのか、思いつかない。価格の極値形成の時間を計算することが必要である。この情報のようです

1分足にはこの情報が埋め込まれているようです。トレンドが再描画され、極値に対応するバーに座標が付くように、タイムフレームが変更される日時を決定する方法。

残念ながら、検索しても何も出てきません。アドバイスをいただけると幸いです。

コードを書くという手順自体に難しさがあることは理解しています。

この課題を解決する方法として、私は次のような方法を提案します。

// Ваша трендовая по High на дневном таймфрейме
datetime Time1 = iTime(Symbol(), PERIOD_D1, 1);
double   High1 = iHigh(Symbol(), PERIOD_D1, 1);
datetime Time2 = iTime(Symbol(), PERIOD_D1, 2);
double   High2 = iHigh(Symbol(), PERIOD_D1, 2);
ObjectCreate("High_Trend", OBJ_TREND, 0, Time2, High2, Time1, High1, 0, 0);

// Ищем точное время High'ев на таймфрейме PERIOD
int PERIOD = PERIOD_M5;

int BarTime1 = iBarShift(Symbol(), PERIOD, Time1);
int BarTime2 = iBarShift(Symbol(), PERIOD, Time2);
Time1 = iTime(Symbol(), PERIOD, 
      Highest(Symbol(), PERIOD, MODE_HIGH, BarTime1, 1));
Time2 = iTime(Symbol(), PERIOD, 
      Highest(Symbol(), PERIOD, MODE_HIGH, BarTime2, BarTime1+1));

ObjectSet("High_Trend", OBJPROP_TIME2, Time1);
ObjectSet("High_Trend", OBJPROP_TIME1, Time2);

唯一の問題は、Strategy Testerでこのコードを使ってExpert Advisorを起動し、PERIOD変数をPERIOD_M1に設定すると、両方のiBarShift関数が-1、つまり関数がTF M1上の同じ時間のバーを履歴で見つけられないことを返すことです...。 なぜそうなるのかはわからない。

その理由がわかりました! テスト期間中、M1バーの履歴はありません。

 
alex12:

商品の全履歴の価格挙動をMAで表示したいのですが、チャートに挿入してもインジケータが描画されません。

何が問題なのか?

コンパイル済み=0、0とした場合。

ところで、MT4のターミナルがハングアップしてしまいます。

入力パラメータHistoryとAver_Barsをより小さな値に設定すると、端末が「ハングアップ」しなくなります。

チャートに貼り付けるとインジケーターが描画されないのはなぜですか?EUR/USD TF M1の今日のチャートに御社のインジケータを配置したところ、このように描画されました。


:D :D :D

 
artmedia70:
このエラー(ゼロ除算)が発生すると、Expert Advisorは動作しなくなります。コード内でゼロによる除算が発生する場所を探してください。おそらく、何らかのパラメータの計算の結果、ゼロが得られるのでしょう。
ありがとうございます、把握しました。週末に確認する予定です。
 

フォーラムの皆様、こんにちは。

もちろん、新参者からの質問もあります。私は今まで何のプログラムも開発したことがないので、質問は非常に原始的かもしれませんが、mql4を学ぼうとしています。でも、自分ではできたことがないんです。

ある加工をして棒グラフの代わりに線を引いて出来高を表示する ことを「ごちゃごちゃ」やってみることにしたんです。コードは次のような意味を持つはずです。前のバーと同じ方向にある2本目のバー(両方とも上)から始めて、2本目のバーからボリュームを描きます。その結果、インジケータウィンドウに折れ線が表示され、確かに2本目のバーから上に描かれているのですが、なぜかすべてのケースでそうなっていません。線が途切れるのは、その描画の他の条件がまったく定義されていないからで、それは未来のものです。しかし、ここで自分は、なぜ2本目のバーごとに上向きに線が引かれないのか、理解することができません。よろしくお願いします。

以下はそのコードです。その他、コードのバグについてご意見がありましたら、よろしくお願いします。

double dVolume=Volume[i];
double vback1=Volume[i+1];

         {
         double vteor12=(dVolume+vback1)/2;
            if (Close[i+1]>Open[i+1] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+1])*1000; else UP12=0;
            if (UP12!=0) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12=0;
            if (Close[i+1]>Open[i+1])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]<0) ExtVolumesBuffer[i]=0;
              }