初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 212

 
Aleksei Stepanenko:

構成にするとさらに良い

使い始める前にエレメントをゼロにすることを忘れずに

そして、必要なところでカウントを増やす

なら

これで、新しいローソク 足ごとに、前の10本のローソク足の周りをぐるりと一周したことになります。これは合理的ではありません。常に前の値の計算結果を記憶しておくことで、無駄なサイクルをなくすことができるはずです。あなたの場合、新しいローソク 足が来たら、条件を満たした時にカウントを増やし、条件を満たさなければ減算すればいいのです。 そして、超過がないかどうかを確認します。10個の要素に対するサイクルは必要なく、主要なものだけです。

アレクセイ、やってみたけど、やっぱりうまくいかないんだ。

はカウントに1つも加算されません。

 for(int i=1;i<=10;i++)              
     {    
     count.up=0;
     count.dn=0;
     double hig10 = iMA (NULL,CP,WPER, 0, MODE_SMA, PRICE_CLOSE, i);                                     
     if (hig10>iClose(Symbol(),CP,i))
     {
     count.up++;
     }
    else
    {
    count.dn++;
    }
    }
    
    
    if (count.up>=8)
    {
    Comment("dsdsD");
    }
 

ループから削除する必要があります

count.up=0;
count.dn=0;

なぜなら、各反復で前の値をゼロにしているからです。ループの前に書いてください。

 
Aleksei Stepanenko:

ループから削除する必要があります

なぜなら、各反復で前の値をゼロにしているからです。ループの前に書き込む

ありがとう ございます。

しかし、不思議なもので、構造体を使わずに、通常の値だけで次のようにやっていたのです。

  for(int i=1;i<=10;i++)              
     {    
     double hig10 = iMA (NULL,CP,WPER, 0, MODE_SMA, PRICE_CLOSE, i);                                     
     if (hig10>iClose(Symbol(),CP,i))
     {
     J=J+1;
    else
    {
    J=0;
    }
    }
    
    
    if (J>=8)
    {
    Comment("dfdf");

と表示され、1目盛りごとに プラスされるようになります))

 

構造もカチッとしたものになります。新しいローソクの スタート時のみ動作させるには、そのローソクの時間を追跡する必要があります

datetime LastTime;

if(LastTime!=Time[0])
   {
   LastTime=Time[0];
   //Здесь ваш код
   }
 
アドバイスをお願いします。私は別のファイル.mqhでカスタム関数を持っているそれらを#includeを介して規定し、私は順番に開始でそれらを呼び出すと、開始は1つの関数に行くとき、アクションに応じて、プログラムは別のファイル.mqh(例えば、注文数量の値を取得する)にアクセスする必要があり、これが発生しません。1枚のシートにすべてを書けばうまくいくし、注文開始パラメータに直接ロットを計算する式を書けばうまくいく。MQL4のレッスンに目を通したり、プログラムのドキュメントを読んだりしましたが、何も見つかりませんでした。ある.mqh関数が、計算の中で別の.mqh関数と相互作用できない理由がよくわからない。または、我々はそのような必要性に直面した場合、プログラムが開始するために返すようにする必要があります - それは開始するために結果を返すだろうし、この計算で開始すると、関数に戻り.mqh順序を開くのだろうか?これは何かゴミのような...。あるいは、既存のすべての関数を別の方法で宣言して、それらが相互に作用するようにすべきなのでしょうか?感謝
 
こんにちは!
LINEの年号(2020年)と分数を消す一番簡単な方法は何ですか?TimeToStrはまだ他の出力形式がないのですか?
TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES);
 
Nauris Zukas:
こんにちは! LINEの年号(2020年)と分数を消す一番簡単な方法は何ですか?TimeToStrはまだ他の出力形式がないのですか?

tm=(string)Hour();
 
Vitaly Muzichenko:

ありがとうございました。

 
Denis Diakonov:
ヒントを教えてください。ユーザー定義関数を別々の.mqhファイルにして、#includeで記述しています。 スタート時にそれらを呼び出し、スタートがある関数に行ったときに、プログラムが別の.mqhファイルを呼び出す必要があるのですが(たとえば、注文数量の値を取得する)、これが起こりません。1枚のシートにすべてを書けばうまくいくし、注文開始パラメータに直接ロットを計算する式を書けばうまくいく。MQL4のレッスンに目を通したり、プログラムのドキュメントを読んだりしましたが、何も見つかりませんでした。ある.mqh関数が、計算の中で別の.mqh関数と相互作用できない理由がよくわからない。または、我々はそのような必要性に直面した場合、プログラムが開始するために返すようにする必要があります - それは開始するために結果を返すだろうし、この計算で開始すると、関数に戻り.mqh順序を開くのだろうか?これは何かゴミのような...。あるいは、既存のすべての関数を別の方法で宣言して、それらが相互に作用するようにすべきなのでしょうか?感謝

インラインで接続した場合は、ファイルではなく、関数から参照する。もちろん、私が正しく理解していればの話ですが。

 
olyakish_fractals_01 "を私のアイデアで書き換えてみました。私のはWilliamsの緑の棒がベースになっています。勘違いしているのですが、MQL4の知識が乏しく、チャートに表示されないのです。どなたか心当たりのある方、お金がかからなければ助けてください)。
ファイル:
18wbguVOL.mq4  13 kb