SimpleDailyRangeBreakExpert(シンプルデイリーレンジブレイクエキスパート - ページ 11 1...456789101112131415161718...31 新しいコメント Flytox 2007.09.20 07:14 #101 この「3600」という数値が開始時刻に加算されることを自問自答しています。このため、このタイムシフトのことは私にはよくわかりません。もしかしたら、Igoradが助けてくれるかもしれません。 string TimeTrade = "00:00"; StartTime = StrToTime(TimeTrade) + TimeShift*3600; if(CurTime() >= StartTime && CurTime() <= StartTime+3600) { if ( OrderOpenDate() < StrToTime(TimeToStr( StartTime,TIME_DATE))) { if( ScanTrades()>0 && !BuyInTrade && !SellInTrade) PendOrdDel(); Today = StrToTime(TimeToStr( StartTime,TIME_DATE)); if (Today != PrevDay ) { DaysInTrade = DaysInTrade+1; //Print(" Days=",DaysInTrade,"Today=",TimeToStr(Today,TIME_DATE),"PrevDay=", TimeToStr(PrevDay,TIME_DATE)) ; } if( TradePeriod > 0 )CloseOrdbyTime(); } if(ScanTrades()<1 && Today != PrevDay ) { spread= MarketInfo(Symbol(),MODE_SPREAD)*Point; digit = MarketInfo(Symbol(),MODE_DIGITS); Lotsi = MoneyManagement ( MM, Lots, MMRisk, LossMax); //if (TrailingStop > 0) InitialStop=true; ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1); open = rates_h1[0][1]; high=0; low=10000000; for (i=24;i>=1;i--) { high = MathMax( high, rates_h1[3]); low = MathMin( low , rates_h1[2]); } range =(high-low); if ( Monday == 1 ) if(DayOfWeek()==1){BuyOrdOpen(); SellOrdOpen();} if ( Tuesday == 1 ) if(DayOfWeek()==2){BuyOrdOpen(); SellOrdOpen();} if ( Wednesday== 1 ) if(DayOfWeek()==3){BuyOrdOpen(); SellOrdOpen();} if ( Thursday == 1 ) if(DayOfWeek()==4){BuyOrdOpen(); SellOrdOpen();} if ( Friday == 1 ) if(DayOfWeek()==5){BuyOrdOpen(); SellOrdOpen();} DaysInTrade = 0; } } SimpleDailyRangeBreakExpert Someone scribble a script [ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. Flytox 2007.09.20 07:44 #102 この3600という値は、時間を秒単位で換算しているようです。つまり、私の場合、ブローカー時間(GMT+0)の09:00に開始することを意味します。私の問題は別のところにあります。 Sergey Golubev 2007.09.20 07:49 #103 こんにちはFlytox。 今、このEAを見てみます(通常、私は1日に1回、何か面白いものを投稿するために発言しています)。このEAをmetaEditorで開いて見てみます。 - もしかしたら、このEAはTracertファイルを使っているかもしれません。 - または、IBFXのEURUSDmではなくEURUSDとしてコード内に記載されているいくつかのペアがあるかもしれません。 とにかく、もしあなたが時間を9に設定したなら、EAは9ですべての利益が出ている注文を閉じ、新しい保留中の注文を(同様に9で)開くはずです。 私は今これを見ます。 Flytox 2007.09.20 08:00 #104 同じ口座の他のEA(TPE, TS,) を閉じたら、SBSが9:00 (ブローカー時間) に最終的に保留注文を 出しました。私が削除した EA は異なるマジックナンバーを持つものでした。SBS123 と他の EA の間に何か既知の非互換性があるのでしょうか? Sergey Golubev 2007.09.20 08:26 #105 この1.23のコードの中を見ましたが、何の問題もありませんでした。このEAは、外部からのいかなるファイルも、いかなるインディケータも使用していません。従って、IBFXで動作するはずです。 私はこのEA/設定(デフォルト設定(この投稿を 参照))を使っています。これはGMT+3ブローカー用の設定です。そして、EURUSDとGBPUSDをTimeShift=9(LiteForexサーバーの時間は午前9時、現在はGMT+3)、USDJPYをTimeShift=10、USDCHFをTimeShift=7にしています。これはGMT+3用です。 IBFXがGMT+0であれば、以下のようになる可能性があります。 EURUSDとGBPUSDはTimeShift=6で、などなど。 ファイル: sbs123_workplace.gif 55 kb sbs_123_normal_statement.htm 76 kb sbs_123_normal_statement.gif 6 kb Flytox 2007.09.20 08:31 #106 NDさん、こんにちは。 他のEAが同じMT4(同じ口座)にある場合に起こりうるコンフリクトに関する私の以前の投稿をご覧いただけましたか? Sergey Golubev 2007.09.20 08:45 #107 Flytox: 同じ口座の他のEA(TPE, TS,) をクローズしたら、SBSが9時(ブローカータイム)にようやくペンディングオーダーを出しました。私が削除した EA は異なるマジックナンバーを持つものでした。SBS123 と他の EA の間に何か既知の非互換性があるのでしょうか? 互換性がない?いいえ。 2つのEAが注文を修正したり、注文のクローズ/オープンを分秒で同時に正確に行いたい場合、そのようなケースがあるかもしれません。しかし、それは通常のケースではありません。基本的に1つのメタトレーダーで3つ以上のEAを使用することは不可能です。メタトレーダーの1つのコピーで1または2、または3つのEAは良いかもしれませんが、それはまた、時間枠に関連しています:例えば、我々はD1の時間枠で動作するEAと一緒にM5でいくつかのスキャルパーを使用するかもしれませんなどなど。なぜなら、メタトレーダーはプログラムとして2つのことを同時に行うことができないからです:1つの注文を修正し、他の保留中の注文を分・秒単位で同時に正確に削除することができません。 このSBS_V1.23では、EAは保留中の注文を削除 し、それが完了するまで何度も新しい注文を開こうとします。SBS_V1.21も同じで、Metatraderが今保留注文を削除できない場合、1分後に削除しようとし、失敗したら1分後にもう一度削除しようとします。というわけで、非互換性はないと思います。 似たようなEAにSBS_v1.21とTPE EAがあります。 リスクが少ないのはSBS_v1.21、リスクが高いのはTPE、TPEよりリスクが高いのはSBS_v1.23です(単に開始預金サイズに関連するトレーダーへのリクスに従ってソートしています)。 すべてのEAに異なるマジックナンバーを使用すれば、競合は発生しません。 もちろん、1つのメタトレーダーで5つのEAをテストしている場合は、マジックナンバーが違ってもすべて同じになる可能性があります。1つのメタトレーダーで5つのEAを使うのはやりすぎです。 ファイル: sbs121.zip 18 kb tpe12.zip 17 kb Flytox 2007.09.20 08:45 #108 NDの回答ありがとうございました。 Sergey Golubev 2007.09.22 16:27 #109 2つのバージョンで更新されたステートメントをご覧ください。 テスト期間開始時の明細は、こちらの投稿とエクセルファイルをご覧くださいhttps://www.mql5.com/en/forum/173383/page79 ファイル: sbs121_1.zip 18 kb sbs123.zip 50 kb Sergey Golubev 2007.09.27 14:43 #110 SBS 1.23バージョンに更新されたステートメントをご覧ください。 ファイル: sbs23.zip 35 kb 1...456789101112131415161718...31 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
この「3600」という数値が開始時刻に加算されることを自問自答しています。このため、このタイムシフトのことは私にはよくわかりません。もしかしたら、Igoradが助けてくれるかもしれません。
StartTime = StrToTime(TimeTrade) + TimeShift*3600;
if(CurTime() >= StartTime && CurTime() <= StartTime+3600)
{
if ( OrderOpenDate() < StrToTime(TimeToStr( StartTime,TIME_DATE)))
{
if( ScanTrades()>0 && !BuyInTrade && !SellInTrade) PendOrdDel();
Today = StrToTime(TimeToStr( StartTime,TIME_DATE));
if (Today != PrevDay )
{ DaysInTrade = DaysInTrade+1;
//Print(" Days=",DaysInTrade,"Today=",TimeToStr(Today,TIME_DATE),"PrevDay=", TimeToStr(PrevDay,TIME_DATE)) ;
}
if( TradePeriod > 0 )CloseOrdbyTime();
}
if(ScanTrades()<1 && Today != PrevDay )
{
spread= MarketInfo(Symbol(),MODE_SPREAD)*Point;
digit = MarketInfo(Symbol(),MODE_DIGITS);
Lotsi = MoneyManagement ( MM, Lots, MMRisk, LossMax);
//if (TrailingStop > 0) InitialStop=true;
ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);
open = rates_h1[0][1];
high=0; low=10000000;
for (i=24;i>=1;i--)
{
high = MathMax( high, rates_h1[3]);
low = MathMin( low , rates_h1[2]);
}
range =(high-low);
if ( Monday == 1 ) if(DayOfWeek()==1){BuyOrdOpen(); SellOrdOpen();}
if ( Tuesday == 1 ) if(DayOfWeek()==2){BuyOrdOpen(); SellOrdOpen();}
if ( Wednesday== 1 ) if(DayOfWeek()==3){BuyOrdOpen(); SellOrdOpen();}
if ( Thursday == 1 ) if(DayOfWeek()==4){BuyOrdOpen(); SellOrdOpen();}
if ( Friday == 1 ) if(DayOfWeek()==5){BuyOrdOpen(); SellOrdOpen();}
DaysInTrade = 0;
}
}この3600という値は、時間を秒単位で換算しているようです。つまり、私の場合、ブローカー時間(GMT+0)の09:00に開始することを意味します。私の問題は別のところにあります。
こんにちはFlytox。
今、このEAを見てみます(通常、私は1日に1回、何か面白いものを投稿するために発言しています)。このEAをmetaEditorで開いて見てみます。
- もしかしたら、このEAはTracertファイルを使っているかもしれません。
- または、IBFXのEURUSDmではなくEURUSDとしてコード内に記載されているいくつかのペアがあるかもしれません。
とにかく、もしあなたが時間を9に設定したなら、EAは9ですべての利益が出ている注文を閉じ、新しい保留中の注文を(同様に9で)開くはずです。
私は今これを見ます。
同じ口座の他のEA(TPE, TS,) を閉じたら、SBSが9:00 (ブローカー時間) に最終的に保留注文を 出しました。私が削除した EA は異なるマジックナンバーを持つものでした。SBS123 と他の EA の間に何か既知の非互換性があるのでしょうか?
この1.23のコードの中を見ましたが、何の問題もありませんでした。このEAは、外部からのいかなるファイルも、いかなるインディケータも使用していません。従って、IBFXで動作するはずです。
私はこのEA/設定(デフォルト設定(この投稿を 参照))を使っています。これはGMT+3ブローカー用の設定です。そして、EURUSDとGBPUSDをTimeShift=9(LiteForexサーバーの時間は午前9時、現在はGMT+3)、USDJPYをTimeShift=10、USDCHFをTimeShift=7にしています。これはGMT+3用です。
IBFXがGMT+0であれば、以下のようになる可能性があります。
EURUSDとGBPUSDはTimeShift=6で、などなど。
NDさん、こんにちは。
他のEAが同じMT4(同じ口座)にある場合に起こりうるコンフリクトに関する私の以前の投稿をご覧いただけましたか?
同じ口座の他のEA(TPE, TS,) をクローズしたら、SBSが9時(ブローカータイム)にようやくペンディングオーダーを出しました。私が削除した EA は異なるマジックナンバーを持つものでした。SBS123 と他の EA の間に何か既知の非互換性があるのでしょうか?
互換性がない?いいえ。
2つのEAが注文を修正したり、注文のクローズ/オープンを分秒で同時に正確に行いたい場合、そのようなケースがあるかもしれません。しかし、それは通常のケースではありません。基本的に1つのメタトレーダーで3つ以上のEAを使用することは不可能です。メタトレーダーの1つのコピーで1または2、または3つのEAは良いかもしれませんが、それはまた、時間枠に関連しています:例えば、我々はD1の時間枠で動作するEAと一緒にM5でいくつかのスキャルパーを使用するかもしれませんなどなど。なぜなら、メタトレーダーはプログラムとして2つのことを同時に行うことができないからです:1つの注文を修正し、他の保留中の注文を分・秒単位で同時に正確に削除することができません。
このSBS_V1.23では、EAは保留中の注文を削除 し、それが完了するまで何度も新しい注文を開こうとします。SBS_V1.21も同じで、Metatraderが今保留注文を削除できない場合、1分後に削除しようとし、失敗したら1分後にもう一度削除しようとします。というわけで、非互換性はないと思います。
似たようなEAにSBS_v1.21とTPE EAがあります。
リスクが少ないのはSBS_v1.21、リスクが高いのはTPE、TPEよりリスクが高いのはSBS_v1.23です(単に開始預金サイズに関連するトレーダーへのリクスに従ってソートしています)。
すべてのEAに異なるマジックナンバーを使用すれば、競合は発生しません。
もちろん、1つのメタトレーダーで5つのEAをテストしている場合は、マジックナンバーが違ってもすべて同じになる可能性があります。1つのメタトレーダーで5つのEAを使うのはやりすぎです。
NDの回答ありがとうございました。
2つのバージョンで更新されたステートメントをご覧ください。
テスト期間開始時の明細は、こちらの投稿とエクセルファイルをご覧くださいhttps://www.mql5.com/en/forum/173383/page79
SBS 1.23バージョンに更新されたステートメントをご覧ください。