[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 543

 

皆さん、こんにちは。

最初の専門家を確定させました。最初の課題は、自分のアイデアをコードという形にすることでした。

私のEAをご覧になって、ご意見をお聞かせいただきたいのです。

EAの作成に ご協力いただき、誠にありがとうございました

Expert Advisorのロジックは以下の通りです。

-RSIレベル(1条件)を突破した場合。

-次に、フラグを使用して、2つ目の条件(n本のバーで高値または安値を更新)を満たします。

-また、1次が開いている間に2次が開かないようにする機能も導入しました。

今回も、EAを正しく書くことが目的でした。私の間違いや不足をご指摘ください。

あらかじめご了承ください。

ファイル:
proboitrsi.mq4  12 kb
 
ありがとうございました。
 
Pacman:

皆さん、こんにちは。

最初の専門家を確定させました。当初の課題は、自分のアイデアをコードという形で正しく伝えることでした。

...

ここで、あなたのコードを少し覗いてみることにしました。

1) 不足しているのは、init()とdeinit()です。

2)これです。
for(int i=1; i<=OrdersTotal(); i++)
      {
       if(OrderSelect(i-1,SELECT_BY_POS)==true)
         {
          if(OrderSymbol() == Symb)
            {
             if(OrderMagicNumber()==777)
                return;
            }    
         }   
      }

このようにすることができます。

if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {   if(OrderSymbol() != Symb) continue;
          if(OrderMagicNumber() != 777) continue;
          return;
      }
   }
}

3)これです。

Symb=  Symbol();
...
Min_Lot= MarketInfo(Symbol(),MODE_MINLOT);
...
Steep=   MarketInfo(Symbol(),MODE_LOTSTEP);

は、init()の中で書くと、「関数呼び出しは 変数参照よりも時間がかかる」ので、tick毎ではなく、初期化時に一度だけ定義すれば十分です。

4)この投稿の論理がよくわからないのですが

while(true)
...

いつからいつまでが偽者なのか?

これは、私が直接目に留まったもののほんの一部です。

 
paladin80:

あなたのコードを少し覗いてみることにしました。


3)これら

をinit()に入れると、「関数呼び出しは変数参照より時間がかかる」ので、tick毎ではなく、初期化時に一回定義すれば十分です。


ただ、init()では、市場環境が常に利用できるとは限らないことを忘れないでください。
 
Vinin:
ただ、マーケット環境がinit()で常に利用できるわけではないことをお忘れなく
ループを通して正しい値を得るという、「やっかいな○○」に対する解決策が必ずあることはご存じでしょう。
 
TarasBY:
ループを通して正しい値を得るという、「やっかいな○○」に対する解決策が必ずあることを知っているはずです。

init()関数に時間的な制約がある
 

こんばんは。

このEAは、複数のフレームで複数のペアを監視しています。付いているペア/ウィンドウのティックだけでなく、全てのペアのティックに反応するようにするには。ありがとうございました。

int start()

{

ダブルMA50 [4][9]。

double OBarHigh [4][9];

double OBarLow [4][9];

for (int t=0; t<=3; t++) // タイムフレーム

{

for (int p=0; p<=8; p++) // ペア

{

MA50[t][p]=iMA(ペア[p]、tframe[t]、50、0、MODE_EMA、PRICE_CLOSE、0)です。

OBarHigh [t][p]=iHigh(pair[p],tframe[t],0);

OBarLow [t][p]=iLow(pair[p],tframe[t],0);

 
imux:

こんばんは。

このEAは、複数のフレームで複数のペアを監視しています。付いているペア/ウィンドウのティックだけでなく、全てのペアのティックに反応するようにするには。ありがとうございました。



ループするEAが有効かもしれない
 
Vinin:

init()関数が動作するための時間的制約がある
私のEAでは、init()でマーケット環境から少なくとも12個の値を引き出します。 初期段階では時々問題がありましたが、今ではすべてうまくいっています。これは私の個人的な経験です。規則を主張するものではありません。;)
 
silhouette:

オシレーターでダイバージェンスを探す問題を正しく理解するために、ご協力をお願いします。この場合、MACDとします。次のようなアルゴリズムをスケッチしてみました。

1) 最初からバーを数え、オシレーターでピークを探す。

2) ピークタイムを含むアレイを作成する。

を表示し、条件を満たした場合にMACD[i]の値を入力します。最後の新しいピークはインデックス[n]を持ち、最後から2番目のピークは[n+1]を持つ必要があります。

3) (1)の状況下でさらに解を考えてみよう。

実は、2の問題ですが、このような配列を時系列に並べて、新しいピークごとに値がずれるようにするにはどうしたらいいのでしょうか?


助けてください!