CyberiaTrader...すごいEAですね。 - ページ 16

 

ステートメントを更新しました。

1週間で資本金がほぼ2倍になりました。

v1.60

これからはロットサイズを2に変更します。

ファイル:
statement_2.htm  1653 kb
 

ATR_normalizedの画面

イゴールさん 上のレスにATR_normalizedの画面を添付するのを忘れていました。 ここにあります。

ファイル:
atr_norm.gif  50 kb
 
igorad:
こんにちは。

Normalized ATRを作成しようとしましたが、それほど簡単な作業ではないと思います。

入力で遊んでみてください。

イゴール

追記です。申し訳ありませんが、バグがコードにありました。修正しました。

Igor、正規化ATRをどうもありがとうございました。 30(スケール0-100)を決して下回らないという例外を除いては、それは良さそうです。 添付の画面を見ると、ATR_normalizedが35前後に留まっている間、iATRが0になるのがわかります。 iATR がしばらくの間でもゼロになるすべてのインスタンスで、ATR_normalized は 30 を超えたままです。 直していただけませんか? また、ネイティブのiATRとiMAを使って作成した方が簡単ではないでしょうか? 多分その方が簡単で、CTのコードをフィルターとして使うだけでいいと思うのですが。

 

こんにちは。

これを試してみてください。大丈夫なはずです。

ファイル:
 
igorad:
こんにちは、これを試してみてください。OKに違いない。

OK これはやってみます。 あと、これは非常にシンプルにできました。

double normATR=0;

double maxATR=iATR(Symbol(),Period(),14,0);

int i;

for(i=1;i<14;i++)

{

if(iATR(Symbol(),Period(),14,i)>maxATR)とする。

{

maxATR=iATR(Symbol(),Period(),14,i)。

}

}

normATR=(iATR(Symbol(),Period(),14,0)/maxATR)*100;

これもうまくいきそうです。 ありがとうございました!

 
igorad:
現在、最後のバージョンをテストしていますが、いくつかのバグが見つかりました。 更新をお待ちください。

Igorさん、PIP Timerを修正したバージョンを投稿していただけませんか?現在のフォームでは正しく動作しません。 エントリー時にPIPcounterを開始し、利益が出たかどうかに関係なく時間が経過した後に終了してしまいます。 秒カウントはティックが入ってくるのと非同期なので、秒ではなくティックでテストしてください。 ご投稿ありがとうございました。

以下、再度仕様と、元々書いていただいたコードに少し手を加えて、今のところ持っているコードです。

1.EnablePIPTimer=trueとした場合。

2.MinPIPProfit >=X のとき TakePIPCountdown を有効にする (SET to Input TakePipTimer)。これは0までのカウントダウンをティック単位で開始します。

3.3. TakePIPCountDownはカウントダウンします。60、59、58...ティックなど。

4.グローバル変数 double BestPIPProfit=0; これは、そのポジションがこれまでに達成した最高のPIP利益を保持します。

5.5. 最初はBestPIPProfit=MinPIPProfitとします。

6.BestPIPProfit=現在のPIP利益を取得します。

7.BestPIPProfit > MinPIPProfitなら、MinPIPProfit = BestPIPProfitとします(これが、このオープンポジションの今後アップデートされる最小フロアPIP利益となります)。

8.上記の条件7が発生したら、TakePIPCountDownを初期値(TakePipTimer)に戻し、カウントできるようにします。

9.9. TakePIPCountDownが0になったら、オープンオーダーを直ちにクローズします。

10.現在のPIP利益がMinPIPProfitを下回ったら、現在の利益が 再び≧MinPIPProfit(達成された最高階)になるまでTakePIPCountDownを停止する(そして元のTakePipTimerの値にリセットする)。

CODE:

int CheckTakeProfitTimer()

{

double _point = MarketInfo(OrderSymbol(),MODE_POINT)。

double PipProfit = 0;

if (EnablePipTimer==true)。

{

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

int mode=OrderType();

if ( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { オーダーシンボル()==シンボル() && オーダーマジック番号()==マジック番号())

{

if (モード==OP_BUY)

PipProfit = MathRound((Bid - OrderOpenPrice())/_point); // BUYのオープン利益/損失を計算します。

さもなくば

if (モード==OP_SELL)

PipProfit = MathRound((OrderOpenPrice()-Ask)/_point); // 売りの未決済利益/損失を計算します。

MaxPipProfit = MathMax(PipProfit,MaxPipProfit); // 現在の利益または取引中の最大の利益を取得します。

if (MaxPipProfit >= BestPipProfit) // フロアPIPの利益が達したかどうかチェックします。

{

if (!StartCount1 || ( StartCount1 && BestPipProfit > MinPipProfit)) // カウントが進行中でなく、フロアPIPの利益に達した場合

{

BestPipProfit=MaxPipProfit; // これまでの最大利益をリセットします。

TimerStart1 = CurTime()/1000; // 現在の時間をフリーズします。

TakePipCountDown = TakePipTimer; // カウンターを設定値に初期化します。

StartCount1=true; // カウンタをスタートさせます。

さもなくば

if (TimerType == 0) // カウント中...秒かティックをカウントする

{

TakePipCountDown = TakePipTimer - (CurTime()/1000 - TimerStart1); // 秒カウントが選択されました。

}

その他

{

TakePipCountDown--; // 選択されたオプションは、ティックカウントです。

}

}// if (MaxPipProfit...)

}// if (オーダー...

} // for

}// EnablePipTimerで

 

CT 1.85の取引不可を修正

申し訳ないギャング...CT 1.85にはバグがあり、悪い取引時間の後に取引できないようになっていました。 新しいバージョンが出るまでの間、とりあえずそれを修正し、1.85f(fixed)と名付けました。 このバージョンは、もともと掲載されている1.85のプリセットと一緒にお使いください。 これは1.85と同じもので、取引不可の修正だけが含まれています。 もっと早く気づくべきでした。

ファイル:
 
fxspeedster:
ごめんねギャング...1.85にはバグがあって、悪い取引時間の後にCT 1.85が取引できないようになっていたんだ。 新しいバージョンが出るまでの間、とりあえずそれを修正し、1.85f(fixed)と名付けました。 このバージョンは、もともと掲載されている1.85のプリセットと一緒にお使いください。 これは1.85と同一で、取引不可の修正のみが入っています。 もっと早く気づくべきでした。

他の人たちは素晴らしい結果を出しているのに、どうして私はほとんど注文を受けられないのか、理解できませんでした

 

こんにちは。

私はPipTimerExpertを別に開発しました。このExpertは、fxspeedsterが説明した手法に従って、トレードを管理することができます。このバージョンでは、秒単位とティック単位のカウンターを搭載しています。CyberiaTraderで使用することができます。

ファイル:
 
igorad:
こんにちは、私はPipTimerExpertを別に開発しました。このExpertは、fxspeedsterが説明したテクニックに従ってトレードを管理することができます。このバージョンでは、秒単位とティック単位のカウンターを搭載しています。CyberiaTraderで使用することができます。

Igorさん、素晴らしい作品をありがとうございます。 私は、このコードを含めて、テストしています。 あなたは最高です!