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

 
シンタックスはマスターしていますが、ロジックはちょっと難しいですね。
 

こんにちは。

一昨日、昨日と同じ設定でEAをテストしています。コードは同じで、すべてのパラメータも同じですが、結果は異なります。

Expert Advisor は、設定した時刻に追加条件なしで取引を開始します。取引開始価格が 大きく異なることがわかる。

MetaQuotes Software Corp.から2回とも同じ引用符アーカイブをダウンロードしました。

ファイル:
szcwya.zip  34 kb
 
gince:

上下に2つ並んだフラクタルはどうやって見つけるのですか?下の写真です。

インジケータを書こうとしたのですが、よく考えずに書いてしまいました。

もしかしたら、そんなインジケーターを用意したのを見たことがある人がいるかもしれません。


int GetFractal(string sy="0", int tf=0, int nf=0) 関数でフラクタルが正しく捕捉されることは確認されていますか?(そこにはEMPTY_VALUEの 値があります)

なぜ、このような不十分なオーバーシュートなのでしょうか?

1)それは、ティックではなく、ろうそくの外観に動作します。

2)何度も繰り返すのではなく、2つのフラクタルアレイを同時に試すこと。

3) 上のフラクタルがあれば、最初の変数の値に+1、下のフラクタルがあれば、-1。(結果のバリエーション:-1、0、+1)

4) 次のフラクタルについて:上側のフラクタルがあれば、2番目の変数の値に+1、下側のフラクタルがあれば、-1。( 結果は以下の通り:-1、0、+1)

5) 第1変数と第2変数の和を探す。

a) 0より小さい(下位のフラクタルが2つある) YEAH!

b) 0より大きい(2つの上部フラクタルがある) YEAH!!!!

c)は0に等しく、1つの変数が0に等しい(2つの下部と2つの上部フラクタルがある) YEAH!!!

6) 2番目の変数の値を1番目の変数に再代入し、4)からのサイクルを開始する。

 
aiculu:
ヘルプ、どうやったのかわからなかったのですが、誤って何かをクリックしてしまい、未決済注文の概要が表示されたウィンドウが消えてしまいました、どうしたら元に戻せますか?

Ctrl-T

 
Elektronik:

Ctrl-T


ありがとうございました)))
 
Antonius:

こんにちは。

一昨日、昨日と同じ設定でEAをテストしています。コードは同じで、すべてのパラメータも同じですが、結果は異なります。

Expert Advisor は、設定した時刻に追加条件なしで取引を開始します。取引開始価格が大きく異なることがわかる。

MetaQuotes Software Corp.から2回とも同じ引用符アーカイブをダウンロードしました。

テスターでは現在のスプレッドが選択されています。そのため、テストを開始すると、テスト開始時のスプレッドがそのまま使用されるため、このような違いが生じます。スプレッドを一定の数値に設定する。
 
ALXIMIKS:


int GetFractal(string sy="0", int tf=0, int nf=0) 関数でフラクタルが正しく捕捉 されているのでしょうか?(そこにはEMPTY_VALUEの 値があります)

なぜ、このような不十分なオーバーキルをするのか?

1) 刻み目ではなく、ロウソクの見た目で判断して作業する

2) フラクタル配列の検索を複数回行わず、一度に2つのフラクタル配列を検索する。

3) 上のフラクタルがあれば、最初の変数の値に+1、下のフラクタルがあれば、-1。

4) 次のフラクタル:上のフラクタルがあれば、2番目の変数に+1、下のフラクタルがあれば、-1。

5) 第1変数と第2変数の和を探す。

a) 0より小さい(下位のフラクタルが2つある) YEAH!

b) 0より大きい(2つの上部フラクタルがある) YEAH!!!!

c)は0に等しく、1つの変数が0に等しい(2つの下部と2つの上部フラクタルがある) YEAH!!!

6) 2番目の変数の値を1番目の変数に再代入し、4)の時点からループを開始する。

嫌味ではなく、ちゃんと最適化された機能を自分で相手に書いた方がいい。いつも否定と嘲笑しか見せない。答えがあるならコードを書け、答えがないなら何も言うな、というような賢い振る舞いはしないように。ところで、オーバーキルはそこそこ進んでいるのだが...。
 
artmedia70:
テスターでは現在のスプレッドが選択されており、それゆえ、テストを実行すると、テスト実行時のスプレッドが使用されるため、違いが生じます。スプレッドを一定の数値に設定する。


異なるテスト日の同じ日の同じ時刻に開いたトレードの差は - さまざまです。

例えば、こんな感じです。

日付、時刻 一昨日 今日 差異
2011.10.05 13:151616.031622.89-6.86
2011.10.12 13:151682.871682.89-0.02
2011.10.19 13:151649.101659.66-10.56


はい、そして普及のための高すぎる値。

 
artmedia70:
皮肉より、自分でちゃんと最適化した機能を書けよ。いつも否定と嘲笑しか見せない。言いたいことがあるならコードを書け、答えがないなら何も言うな、というような小賢しい真似はしないこと。ちなみにオーバーキルはそこそこ進んでいる...


時間があったので、タスクのアルゴリズムを考え、詳しく説明しました(人によっては少し不正確かもしれません-理解力は人それぞれです)。

皮肉か? 知らないわ 助けになりたかったの

コードを書くか、最適化するか。(できるけど、その価値があるか?)

(PSアートメディア70、 悪気はない、私は一般的にあなたの態度や意見を尊重する - 正直なところ、しかし、他の日、あなた自身がそれを控えめに言えば、iCustom-yからコードを与えた非常に最適化されていません)。

int a1=0,a2,a3,kilkict,frac,frac1=0;//frac - флаг существования фракталов, frac1- счетчик фракталов (+1 или 0 за цикл)

kilkict=iBars(sy, tf);

for (i=3; i<kilkict;i++){
  a2=0;frac=0;
  if(iFractals(sy, tf, MODE_UPPER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
         a2+=1;frac=1;frac1++;
        }
     }
  if(iFractals(sy, tf, MODE_LOWER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
        if(a2==0){frac1++; frac=1;}a2+=-1;
        }
     } if (frac==0){continue;}if (frac1==1){a1=a2;continue;}
  a3=a1+a2;
  if(a3<0)           { a1=a2;//Два фрактала вниз  подряд найдено// continue;}
  if(a3>0)           { a1=a2;//Два фрактала вверх подряд найдено // continue;}
  if(a3==0 && a1==0) { a1=a2;// Два фрактала подряд вверх и два фрактала подряд вниз найдено //}
}

こんな感じで、新しいバーの チェックに挿入すればうまくいくはずです。

このコードは、常にすべてのバーに目を通す必要がないように、ある程度の数のフラクタル後にkilkict=iBars(sy,tf)を絞り込むと、より最適なものになります。

 
ALXIMIKS:


私は時間がありました - 私はタスクのアルゴリズムを思いつき、説明しました(詳細、人によっては少し不正確かもしれません-人は近づきやすさの点で異なります)。

皮肉か? わからないが、参考までに。

コードを書くか、最適化するか。(できるけど、その価値がある?)

(p.s.artmedia70、 悪気はない、私は一般的にあなたの態度や意見を尊重する - 正直、しかし、他の日あなた自身iCustomからコードを与えた-穏やかにそれを置くために非常に最適化されていません)。

こんな感じで、新しいバーのチェックに挿入すればうまくいくはずです。

より最適なコードは、フラクタル数の後にkilkict=iBars(sy,tf)を絞り込むと、常にすべてのバーに目を通す必要がなくなります。

そう、KVAIUのジョークにもあったように、本物の士官は、その振る舞いや外見で恐怖心を抱かせなければならないのだ。

より最適な状態」にすることは可能なのでしょうか?