CyberiaTrader...すごいEAですね。 - ページ 16 1...91011121314151617181920212223...29 新しいコメント Linuxser 2006.08.28 11:02 #151 ステートメントを更新しました。 1週間で資本金がほぼ2倍になりました。 v1.60 これからはロットサイズを2に変更します。 ファイル: statement_2.htm 1653 kb fxspeedster 2006.08.28 12:49 #152 ATR_normalizedの画面 イゴールさん 上のレスにATR_normalizedの画面を添付するのを忘れていました。 ここにあります。 ファイル: atr_norm.gif 50 kb fxspeedster 2006.08.28 12:54 #153 igorad: こんにちは。Normalized ATRを作成しようとしましたが、それほど簡単な作業ではないと思います。 入力で遊んでみてください。 イゴール 追記です。申し訳ありませんが、バグがコードにありました。修正しました。 Igor、正規化ATRをどうもありがとうございました。 30(スケール0-100)を決して下回らないという例外を除いては、それは良さそうです。 添付の画面を見ると、ATR_normalizedが35前後に留まっている間、iATRが0になるのがわかります。 iATR がしばらくの間でもゼロになるすべてのインスタンスで、ATR_normalized は 30 を超えたままです。 直していただけませんか? また、ネイティブのiATRとiMAを使って作成した方が簡単ではないでしょうか? 多分その方が簡単で、CTのコードをフィルターとして使うだけでいいと思うのですが。 Igor Durkin 2006.08.28 14:25 #154 こんにちは。 これを試してみてください。大丈夫なはずです。 ファイル: atr_normalized_v1.mq4 4 kb fxspeedster 2006.08.28 16:15 #155 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; これもうまくいきそうです。 ありがとうございました! fxspeedster 2006.08.28 20:29 #156 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で CyberiaTrader..an amazing EA! コーディングのヘルプ 10ポイント 3.mq4 fxspeedster 2006.08.28 23:32 #157 CT 1.85の取引不可を修正 申し訳ないギャング...CT 1.85にはバグがあり、悪い取引時間の後に取引できないようになっていました。 新しいバージョンが出るまでの間、とりあえずそれを修正し、1.85f(fixed)と名付けました。 このバージョンは、もともと掲載されている1.85のプリセットと一緒にお使いください。 これは1.85と同じもので、取引不可の修正だけが含まれています。 もっと早く気づくべきでした。 ファイル: cyberiatrader1_185f.mq4 61 kb deeforex 2006.08.29 00:34 #158 fxspeedster: ごめんねギャング...1.85にはバグがあって、悪い取引時間の後にCT 1.85が取引できないようになっていたんだ。 新しいバージョンが出るまでの間、とりあえずそれを修正し、1.85f(fixed)と名付けました。 このバージョンは、もともと掲載されている1.85のプリセットと一緒にお使いください。 これは1.85と同一で、取引不可の修正のみが入っています。 もっと早く気づくべきでした。 他の人たちは素晴らしい結果を出しているのに、どうして私はほとんど注文を受けられないのか、理解できませんでした Igor Durkin 2006.08.29 05:54 #159 こんにちは。 私はPipTimerExpertを別に開発しました。このExpertは、fxspeedsterが説明した手法に従って、トレードを管理することができます。このバージョンでは、秒単位とティック単位のカウンターを搭載しています。CyberiaTraderで使用することができます。 ファイル: piptimerexpert_v1.1.mq4 5 kb fxspeedster 2006.08.29 13:42 #160 igorad: こんにちは、私はPipTimerExpertを別に開発しました。このExpertは、fxspeedsterが説明したテクニックに従ってトレードを管理することができます。このバージョンでは、秒単位とティック単位のカウンターを搭載しています。CyberiaTraderで使用することができます。 Igorさん、素晴らしい作品をありがとうございます。 私は、このコードを含めて、テストしています。 あなたは最高です! 1...91011121314151617181920212223...29 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ステートメントを更新しました。
1週間で資本金がほぼ2倍になりました。
v1.60
これからはロットサイズを2に変更します。
ATR_normalizedの画面
イゴールさん 上のレスにATR_normalizedの画面を添付するのを忘れていました。 ここにあります。
こんにちは。
Normalized ATRを作成しようとしましたが、それほど簡単な作業ではないと思います。
入力で遊んでみてください。
イゴール
追記です。申し訳ありませんが、バグがコードにありました。修正しました。Igor、正規化ATRをどうもありがとうございました。 30(スケール0-100)を決して下回らないという例外を除いては、それは良さそうです。 添付の画面を見ると、ATR_normalizedが35前後に留まっている間、iATRが0になるのがわかります。 iATR がしばらくの間でもゼロになるすべてのインスタンスで、ATR_normalized は 30 を超えたままです。 直していただけませんか? また、ネイティブのiATRとiMAを使って作成した方が簡単ではないでしょうか? 多分その方が簡単で、CTのコードをフィルターとして使うだけでいいと思うのですが。
こんにちは。
これを試してみてください。大丈夫なはずです。
こんにちは、これを試してみてください。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;
これもうまくいきそうです。 ありがとうございました!
現在、最後のバージョンをテストしていますが、いくつかのバグが見つかりました。 更新をお待ちください。
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と同じもので、取引不可の修正だけが含まれています。 もっと早く気づくべきでした。
ごめんねギャング...1.85にはバグがあって、悪い取引時間の後にCT 1.85が取引できないようになっていたんだ。 新しいバージョンが出るまでの間、とりあえずそれを修正し、1.85f(fixed)と名付けました。 このバージョンは、もともと掲載されている1.85のプリセットと一緒にお使いください。 これは1.85と同一で、取引不可の修正のみが入っています。 もっと早く気づくべきでした。
他の人たちは素晴らしい結果を出しているのに、どうして私はほとんど注文を受けられないのか、理解できませんでした![](https://c.mql5.com/forextsd/smiles/smile.png)
こんにちは。
私はPipTimerExpertを別に開発しました。このExpertは、fxspeedsterが説明した手法に従って、トレードを管理することができます。このバージョンでは、秒単位とティック単位のカウンターを搭載しています。CyberiaTraderで使用することができます。
こんにちは、私はPipTimerExpertを別に開発しました。このExpertは、fxspeedsterが説明したテクニックに従ってトレードを管理することができます。このバージョンでは、秒単位とティック単位のカウンターを搭載しています。CyberiaTraderで使用することができます。
Igorさん、素晴らしい作品をありがとうございます。 私は、このコードを含めて、テストしています。 あなたは最高です!