Firebird v63G - ページ 30 1...232425262728293031323334353637...64 新しいコメント Hendrick 2006.07.01 05:09 #291 先週のUSDCHFのチャートでお分かりのように、Firebirdはレンジ相場の中で非常にうまくいっています。市場がトレンドになるにつれ、Firebirdはしばしば間違った判断を下しています。つまり、相場がトレンドになったらすぐに降りて、レンジ相場に戻ったら戻ってくればいいのです。 Phoenixには、このような変化を見守るコードがあります。つまり、過去24時間、12時間、6時間、2時間の高値を取って、いつトレンドが発生し、いつレンジ相場が復活するかを判断することができるのです。 ファイル: firebirdv63gusdchfweek.gif 28 kb goldensight 2006.07.01 13:36 #292 Hendrickの素晴らしい仕事、あなたのブレインストーミングが実を結んだのですね。 Hendrick: USDCHFの荒れ模様の時のPhoenixとFirebirdの動作の違いをご覧ください。Firebirdは3回買いを入れましたが、全てストップアウトしました。 Phoenixはタイミングを待って3回売りを出し、全てTPにヒットしました。 良いですか? Hendrick 2006.07.01 13:38 #293 MarvinSk: だいぶ近づいてきましたね。これを追加しました。 if ((Safe1!=1)&&(DealTime==2)){。 for (int i=OrdersTotal()-1; i>=0; i--){ if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--) if (オーダーシンボル()==シンボル()) { { if (オーダータイプ()==OP_BUY){ pBid=MarketInfo(OrderSymbol(), MODE_BID); OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy); } if (オーダータイプ()==OP_SELL) { pAsk=MarketInfo(OrderSymbol(), MODE_ASK).OrderTicket(OrderSymbol()、MODE_ASK)。 OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell); } } } } } バックテストでは、OpenTradesを閉じているのがわかりますが、Safe1とDealTime変数が一致したときに、POSITIVE GAINSがあるトレードを閉じているので、STOPLOSS検索機能を追加する必要があります.... だから、Stoplossは3番目のトラップでなければならない....来週、うまくいったらこれを転送するつもりです。 繰り返しになりますが、マーケットが不安定な時に、既存のオープントレードをコントロールすることは、誰もが思いつくことです...もしトレードがストップするなら、100%ではなく、半分でストップしてほしい。少なくとも、マーケットが回復したときに、埋め合わせをする必要はない。 感謝 マーヴィン、こんにちは。 シグナルが変化したら、すぐにオープン・トレードをクローズするのが、より簡単な解決策だろう。どうでしょうか? MarvinSk 2006.07.01 14:08 #294 Hendrick: マーヴィン、もっと簡単な方法は、シグナルが変化したらすぐにオープントレードをクローズすることです。どうでしょうか? ヘンドリック...シグナルというのは、Safe1とDealtimeの値が真になったときということでしょうか? もしそうなら、今市場が閉じているので、私がバック テストで見たのは、いくつかのPostive TradesもClosed outになったということです...だからSTOPLOSSのチェックは、それを制御するための第3の変数です。 私はELIHAYUNによって 提示されたいくつかのコードを持っています。 これをチェックしてみてくださいHendrick... void CloseOrder(int ticket,double numLots,double close_price) { CloseOrder(intチケット,doubleロット,doubleクローズプライス) { int CloseCnt, err; // 3回のクローズを試みる CloseCnt = 0; while (CloseCnt < 3) { if (OrderClose(ticket,numLots,close_price,Slippage,Violet))を実行します。 { CloseCnt = 3; } それ以外 { err=GetLastError(); Print(CloseCnt," Error closing order :(", err , ") " + ErrorDescription(err)); if (err > 0) CloseCnt++; } } } void CloseHalfSL() { double LosePercent = 50.0; // S/Lから50%。 for(int i=OrdersTotal()-1;i>=0;i--) // 全ての注文とポジションをスキャン... { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() != MagicNumber) continue; if ( OrderSymbol()==Symbol() ) if (OrderProfit() < 0) // 損切りトレードが発生しました。 { double prc = Bid; if (OrderType() == OP_SELL) prc = Ask; double ord_prc = OrderOpenPrice(); double ord_SL = OrderStopLoss(); int SL_points = MathAbs(ord_prc - ord_SL) / Point; int Actual_Lose = MathAbs(prc - ord_prc) / Point; if ( (Actual_Lose * 100 / SL_points) >= LosePercent) // 負けすぎ。 { CloseOrder(OrderTicket(), OrderLots(), prc); } } } } /// ---- 取引が安全でないことを確認し、CloseHalfSLを呼び出します。 if (NotSafeToTrade) CloseHalfSL(); Firebird v63G コーディングヘルプ...アラートの代わりにインジケータをフィルタリングする方法を教えてください。 EAが複数のペアで実行されない、助けが必要 Wackena 2006.07.02 10:23 #295 MarvinSk: もうちょっとだこれを追加しました。 if ((Safe1!=1)&&(DealTime==2)){。 for (int i=OrdersTotal()-1; i>=0; i--){ if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--) if (オーダーシンボル()==シンボル()) { { if (オーダータイプ()==OP_BUY){ pBid=MarketInfo(OrderSymbol(), MODE_BID); OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy); } if (オーダータイプ()==OP_SELL) { pAsk=MarketInfo(OrderSymbol(), MODE_ASK).OrderTicket(OrderSymbol()、MODE_ASK)。 OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell); } } } } } バックテストでは、OpenTradesを閉じているのがわかりますが、Safe1とDealTime変数が一致したときに、POSITIVE GAINSがあるトレードを閉じているので、STOPLOSS検索機能を追加する必要があります.... だから、Stoplossは3番目のトラップでなければならない....来週、うまくいったらこれを転送するつもりです。 繰り返しになりますが、マーケットが不安定な時に、既存のオープントレードをコントロールすることは、誰もが思いつくことです...もしトレードがストップするなら、100%ではなく、半分でストップしてほしい。少なくとも、マーケットが回復したときに、埋め合わせをする必要がない...。 感謝 これは、POSITIVE GAINSの注文をオープンにしておく方法かもしれません。if(OrderType()) の行に "&& OrderProfit()<0" を追加してください。 if ((Safe1!=1)&&(DealTime==2)){」とします。 for (int i=OrdersTotal()-1; i>=0; i--){ if (オーダーセレクト(i,SELECT_BY_POS,MODE_TRADES)){。 if (オーダーシンボル()==シンボル()) { { if (OrderType()==OP_BUY && OrderProfit()<0)){ pBid=MarketInfo(OrderSymbol(), MODE_BID); OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy); } if (OrderType()==OP_SELL && OrderProfit() <0){ pAsk=MarketInfo(OrderSymbol(), MODE_ASK); OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell); } } } } } ワッケナ Firebird v63G コーディングの方法は? コーディングのヘルプ MarvinSk 2006.07.02 23:19 #296 Wackena: これはPOSITIVE GAINSの注文を放置しておく方法かもしれませんね。if(OrderType()) の行に "&& OrderProfit()<0" を追加してください。if ((Safe1!=1)&&(DealTime==2)){。 for (int i=OrdersTotal()-1; i>=0; i--){ if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--) if (オーダーシンボル()==シンボル()) { { if (OrderType()==OP_BUY && OrderProfit()<0)){ pBid=MarketInfo(OrderSymbol(), MODE_BID); OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy); } if (OrderType()==OP_SELL && OrderProfit() <0){ pAsk=MarketInfo(OrderSymbol(), MODE_ASK); OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell); } } } } } ワクテナ Wackenaさん、ありがとうございます。 double pBid, pAsk; if ((Safe1!=1)&&(DealTime==2)){。 for (int i=OrdersTotal()-1; i>=0; i--){ if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--) if (オーダーシンボル()==シンボル()) { (オーダーシンボル()==シンボル()) if ((OrderType()==OP_BUY)&&(OrderProfit()<0)){ (オーダータイプ()==OP_BUY)&&(オーダープロフィット()<0)) pBid=MarketInfo(OrderSymbol(), MODE_BID); OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy); if ((オーダータイプ()==OP_SELL)&&(OrderProfit()<0)){。 pAsk=MarketInfo(OrderSymbol(), MODE_ASK); OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell); } } } } } Firebird v63G コーディングの方法は? How to code? MarvinSk 2006.07.02 23:29 #297 OK 全て私は、市場が変動しているときに既存のオープントレードの処理に関して行った追加でフォワードテストをしています... 私が持っている唯一の例外は...0から24までのTradingHourの代わりに 私はこのパターンで取引しています。 0 - 7 EST 11 - 24 EST NYがオープンする時間帯はEAが取引しないようにしたいので、このようにしています。私は8 -10 ESTで多くのボラティリティを見たことがあります。 週が進むにつれて、私の結果を掲載します...。今週はノイズメーカーのニュースがあるので、何が起こるか見てみましょう。 jet 2006.07.03 05:47 #298 ライオンの国でバードウォッチング」という本を読み終えました。 悪くはないです。 最終章は参考になる。 また、火の鳥とフェニックスの背後にある考え方にかなり関連しています。 このアイデアは全く同じではありませんが、非常によく似ており、そこからいくつかの良いアイデアを盗んで、ファイアーバードをさらに素晴らしいEAにするために導入することができます。 もしHendrickやWackena、その他Firebirdの開発者たちがこの本を読むことに興味があれば、私に知らせてください。 downloadduit 2006.07.03 13:51 #299 Firebirdをテストしたい こんにちは、hendrikです。ファイヤーバードの新しいバージョンをテストしたいのですが(ファイヤーバードのバージョンはたくさんあるので)、教えてもらえますか? ファイヤーバードをフェニックスに開発した皆さん、お疲れ様でした。 ありがとうございました。 smalltalk 2006.07.04 08:45 #300 ライブ口座では問題なし MarvinSk: インターバンクFXのLIVE口座を持っている方私はこれらのエラーを取得しています 2006.06.26 20:10:59 : order buy 1.00 USDCHFm opening at 1.2407 sl: 1.2307 tp: 1.2417 failed [共通エラー]. LIVE口座ではEAを認めないということでしょうか? IBFXのLIVE口座を持っていて、今のところ問題はないのですが・・・。 1...232425262728293031323334353637...64 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
先週のUSDCHFのチャートでお分かりのように、Firebirdはレンジ相場の中で非常にうまくいっています。市場がトレンドになるにつれ、Firebirdはしばしば間違った判断を下しています。つまり、相場がトレンドになったらすぐに降りて、レンジ相場に戻ったら戻ってくればいいのです。
Phoenixには、このような変化を見守るコードがあります。つまり、過去24時間、12時間、6時間、2時間の高値を取って、いつトレンドが発生し、いつレンジ相場が復活するかを判断することができるのです。
Hendrickの素晴らしい仕事、あなたのブレインストーミングが実を結んだのですね。
USDCHFの荒れ模様の時のPhoenixとFirebirdの動作の違いをご覧ください。
Firebirdは3回買いを入れましたが、全てストップアウトしました。
Phoenixはタイミングを待って3回売りを出し、全てTPにヒットしました。
良いですか?だいぶ近づいてきましたね。
これを追加しました。
if ((Safe1!=1)&&(DealTime==2)){。
for (int i=OrdersTotal()-1; i>=0; i--){
if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--)
if (オーダーシンボル()==シンボル()) { {
if (オーダータイプ()==OP_BUY){
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);
}
if (オーダータイプ()==OP_SELL) {
pAsk=MarketInfo(OrderSymbol(), MODE_ASK).OrderTicket(OrderSymbol()、MODE_ASK)。
OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);
}
}
}
}
}
バックテストでは、OpenTradesを閉じているのがわかりますが、Safe1とDealTime変数が一致したときに、POSITIVE GAINSがあるトレードを閉じているので、STOPLOSS検索機能を追加する必要があります....
だから、Stoplossは3番目のトラップでなければならない....来週、うまくいったらこれを転送するつもりです。
繰り返しになりますが、マーケットが不安定な時に、既存のオープントレードをコントロールすることは、誰もが思いつくことです...もしトレードがストップするなら、100%ではなく、半分でストップしてほしい。少なくとも、マーケットが回復したときに、埋め合わせをする必要はない。
感謝マーヴィン、こんにちは。
シグナルが変化したら、すぐにオープン・トレードをクローズするのが、より簡単な解決策だろう。どうでしょうか?
マーヴィン、もっと簡単な方法は、シグナルが変化したらすぐにオープントレードをクローズすることです。どうでしょうか?
ヘンドリック...シグナルというのは、Safe1とDealtimeの値が真になったときということでしょうか?
もしそうなら、今市場が閉じているので、私がバック テストで見たのは、いくつかのPostive TradesもClosed outになったということです...だからSTOPLOSSのチェックは、それを制御するための第3の変数です。
私はELIHAYUNによって 提示されたいくつかのコードを持っています。
これをチェックしてみてくださいHendrick...
void CloseOrder(int ticket,double numLots,double close_price) { CloseOrder(intチケット,doubleロット,doubleクローズプライス)
{
int CloseCnt, err;
// 3回のクローズを試みる
CloseCnt = 0;
while (CloseCnt < 3)
{
if (OrderClose(ticket,numLots,close_price,Slippage,Violet))を実行します。
{
CloseCnt = 3;
}
それ以外
{
err=GetLastError();
Print(CloseCnt," Error closing order :(", err , ") " + ErrorDescription(err));
if (err > 0) CloseCnt++;
}
}
}
void CloseHalfSL()
{
double LosePercent = 50.0; // S/Lから50%。
for(int i=OrdersTotal()-1;i>=0;i--) // 全ての注文とポジションをスキャン...
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != MagicNumber) continue;
if ( OrderSymbol()==Symbol() )
if (OrderProfit() < 0) // 損切りトレードが発生しました。
{
double prc = Bid;
if (OrderType() == OP_SELL) prc = Ask;
double ord_prc = OrderOpenPrice();
double ord_SL = OrderStopLoss();
int SL_points = MathAbs(ord_prc - ord_SL) / Point;
int Actual_Lose = MathAbs(prc - ord_prc) / Point;
if ( (Actual_Lose * 100 / SL_points) >= LosePercent) // 負けすぎ。
{
CloseOrder(OrderTicket(), OrderLots(), prc);
}
}
}
}
/// ---- 取引が安全でないことを確認し、CloseHalfSLを呼び出します。
if (NotSafeToTrade) CloseHalfSL();
もうちょっとだ
これを追加しました。
if ((Safe1!=1)&&(DealTime==2)){。
for (int i=OrdersTotal()-1; i>=0; i--){
if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--)
if (オーダーシンボル()==シンボル()) { {
if (オーダータイプ()==OP_BUY){
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);
}
if (オーダータイプ()==OP_SELL) {
pAsk=MarketInfo(OrderSymbol(), MODE_ASK).OrderTicket(OrderSymbol()、MODE_ASK)。
OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);
}
}
}
}
}
バックテストでは、OpenTradesを閉じているのがわかりますが、Safe1とDealTime変数が一致したときに、POSITIVE GAINSがあるトレードを閉じているので、STOPLOSS検索機能を追加する必要があります....
だから、Stoplossは3番目のトラップでなければならない....来週、うまくいったらこれを転送するつもりです。
繰り返しになりますが、マーケットが不安定な時に、既存のオープントレードをコントロールすることは、誰もが思いつくことです...もしトレードがストップするなら、100%ではなく、半分でストップしてほしい。少なくとも、マーケットが回復したときに、埋め合わせをする必要がない...。
感謝これは、POSITIVE GAINSの注文をオープンにしておく方法かもしれません。if(OrderType()) の行に "&& OrderProfit()<0" を追加してください。
if ((Safe1!=1)&&(DealTime==2)){」とします。
for (int i=OrdersTotal()-1; i>=0; i--){
if (オーダーセレクト(i,SELECT_BY_POS,MODE_TRADES)){。
if (オーダーシンボル()==シンボル()) { {
if (OrderType()==OP_BUY && OrderProfit()<0)){
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);
}
if (OrderType()==OP_SELL && OrderProfit() <0){
pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);
}
}
}
}
}
ワッケナ
これはPOSITIVE GAINSの注文を放置しておく方法かもしれませんね。if(OrderType()) の行に "&& OrderProfit()<0" を追加してください。
if ((Safe1!=1)&&(DealTime==2)){。
for (int i=OrdersTotal()-1; i>=0; i--){
if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--)
if (オーダーシンボル()==シンボル()) { {
if (OrderType()==OP_BUY && OrderProfit()<0)){
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);
}
if (OrderType()==OP_SELL && OrderProfit() <0){
pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);
}
}
}
}
}
ワクテナWackenaさん、ありがとうございます。
double pBid, pAsk;
if ((Safe1!=1)&&(DealTime==2)){。
for (int i=OrdersTotal()-1; i>=0; i--){
if (注文選択(i, SELECT_BY_POS, MODE_TRADES)) { { { { (注文シンボル()-1; i>=0; i--)
if (オーダーシンボル()==シンボル()) { (オーダーシンボル()==シンボル())
if ((OrderType()==OP_BUY)&&(OrderProfit()<0)){ (オーダータイプ()==OP_BUY)&&(オーダープロフィット()<0))
pBid=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);
if ((オーダータイプ()==OP_SELL)&&(OrderProfit()<0)){。
pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);
}
}
}
}
}
OK 全て私は、市場が変動しているときに既存のオープントレードの処理に関して行った追加でフォワードテストをしています...
私が持っている唯一の例外は...0から24までのTradingHourの代わりに
私はこのパターンで取引しています。
0 - 7 EST
11 - 24 EST
NYがオープンする時間帯はEAが取引しないようにしたいので、このようにしています。私は8 -10 ESTで多くのボラティリティを見たことがあります。
週が進むにつれて、私の結果を掲載します...。今週はノイズメーカーのニュースがあるので、何が起こるか見てみましょう。
ライオンの国でバードウォッチング」という本を読み終えました。 悪くはないです。 最終章は参考になる。 また、火の鳥とフェニックスの背後にある考え方にかなり関連しています。 このアイデアは全く同じではありませんが、非常によく似ており、そこからいくつかの良いアイデアを盗んで、ファイアーバードをさらに素晴らしいEAにするために導入することができます。 もしHendrickやWackena、その他Firebirdの開発者たちがこの本を読むことに興味があれば、私に知らせてください。
Firebirdをテストしたい
こんにちは、hendrikです。ファイヤーバードの新しいバージョンをテストしたいのですが(ファイヤーバードのバージョンはたくさんあるので)、教えてもらえますか?
ファイヤーバードをフェニックスに開発した皆さん、お疲れ様でした。
ありがとうございました。
ライブ口座では問題なし
インターバンクFXのLIVE口座を持っている方
私はこれらのエラーを取得しています
2006.06.26 20:10:59 : order buy 1.00 USDCHFm opening at 1.2407 sl: 1.2307 tp: 1.2417 failed [共通エラー].
LIVE口座ではEAを認めないということでしょうか?IBFXのLIVE口座を持っていて、今のところ問題はないのですが・・・。