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

 
snail09:
アルゴリズムが、ちょっと不明なので、言葉で投げてみてください...。

おおよそ次のとおりです。

//取引日数の合計を決定する。

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1)となります。

そして、与えられた期間について、利益/日数=%/日を計算します。

この期間全体の週末日数を計算し、計算から除外する必要があります。

利益/(日数)

 

forexnew:

おおよそ次のとおりです。

//取引日数の合計を決定する。

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1)となります。

そして、与えられた期間について、利益/日数=%/日を計算します。

この期間全体の週末日数を計算し、計算から除外する必要があります。

利益/(日数)



期間中に必要な履歴があるか確認し、「利益/日数」を計算します。カレンダー(計算式の中の定数)を使わないようにすればいいだけです。履歴に残るのは取引日のみです(祝日もあります)。日棒に自分を縛り付けるなど。

特にカレンダーを使用したい場合(例えばグレゴリオ暦やユリウス暦など)。新しいバーが ある、新しい曲がある、そんな仕掛けは?

 
forexnew:

おおよそ次のとおりです。

//取引日数の合計を決定する。

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1)となります。

そして、与えられた期間について、利益/日数=%/日を計算します。

この期間全体の週末日数を計算し、計算から除外する必要があります。

利益/(日数)



テスト開始日からの日足バー数を計算することができます。

20時間以上の日足バーの数を数えることができます(パートタイム休日を除くため)。新しいバーが出現したかのように、新しい日を追跡することができます(トレードの全履歴を 読み、固有の日付を計算するようなものです)。

 
splxgf:

テスト開始日からの日足バーの本数をカウントすることができます。

20時間以上の日足バーの数を数えることができます(不完全な週末を除外するため)。新しいバーが現れたら新しい日を追跡するなど(トレードの全履歴を読んでユニークな日付をカウントするようなもの)。

いずれにせよ、「(3600*24)+1)」は適切な構成ではなく バーの数 から始めるべきでしょう。
 
snail09:

期間中に必要な履歴があるか確認し、「利益/日数」をカウントします。カレンダーのもの(計算式の定数)を使わないようにすればいいだけです。履歴に含まれるのは取引日のみです(祝日もあります)。日棒に自分を縛り付けるなど。

特にカレンダーを使用したい場合(例えばグレゴリオ暦やユリウス暦など)。新しいバーがある、新しい曲がある、そんな仕掛けは?

私はこのようにしました。

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24));
for(i=0; i<Days; i++)
{
if(TimeDayOfWeek(CurTime()-i*24*3600)==6 || TimeDayOfWeek(CurTime()-i*24*3600)==7) Days3++;
} ・Days3(Days2);Days3(Days2);Days3(Days3);Days3(Days3);Days3(Days3);Days4(Days3)
Days-=Days3です。

 
forexnew:

こんなことをしました。

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24));
for(i=0; i<Days; i++)
{
if(TimeDayOfWeek(CurTime()-i*24*3600)==6 || TimeDayOfWeek(CurTime()-i*24*3600)==7) Days3++;
} ・Days3(Days2);Days3(Days2);Days3(Days3);Days3(Days3);Days3(Days3);Days4(Days3)
Days-=Days3です。

いいえ、このorderselectでは、履歴から注文を選択(1回)して、1つ(最後の1つ)だけ移動します。何もかもが混乱しませんか?

ループ内でオーダー検索を行い、各オーダーに条件を適用する。

// ループ内の全オーダーを検索する

for(int i=0;i<=OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))

{

// シンボルとマジックナンバーが一致した場合、オーダーは我々のものになる

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

// ここでチェック

}

}

}

 
snail09:

いいえ、このorderselectでは、履歴の中の注文を選択(1回)して、1つ(最後の1つ)だけ移動します。何もかもが混乱しませんか?

ループ内でオーダー検索を行い、各オーダーに条件を適用する。

// ループ内の全オーダーを検索する

for(int i=0;i<=OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))

{

// シンボルとマジックナンバーが一致した場合、オーダーは我々のものになる

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

// ここでチェック

}

}

}

なぜワラントが必要なのですか?ただ、取引のない単発の曜日、つまり土曜と日曜を総日数から差し引いた曜日を特定する必要があるのです。
 

まあ、当然間違えましたが。

TimeDayOfWeek(CurTime()-i*24*3600)==7

7ではなく、0であるべきです。

確認済み、1週間以上経過したアカウントについて。正しく表示されるようです。

 

iMAはどのように算出されるのですか?


アバター
90
Eugene1 2011.10.20 16:34

iMA機能がどのように計算されているのか(分類されているのか)、どこかに載っていないでしょうか?

特にMODE_LWMAに興味があります。

自分好みに見たりいじったりしたいのですが、何かgoogleのソースでは得られなかった

 
forexnew:

まあ、当然間違えましたが。

TimeDayOfWeek(CurTime()-i*24*3600)==7

7ではなく、0であるべきです。

確認済み、1週間以上経過したアカウントについて。正しく表示されるようです。

まあ、だからやめておけ。専門家が注文をコントロールできないなら、じゃあ彼はとにかく何をしているんだ? ...テスターで取引?