成行注文を正しく発注するにはどうしたらよいですか? - ページ 7 123456789 新しいコメント 削除済み 2017.02.04 11:09 #61 prostotrader:ちなみに、インジケータからSleep()を呼び出す のは禁止されているので、不思議です。Sleep()関数はカスタム・インジケータから呼び出すことはできません。なぜなら、インジケータはインタフェース・スレッドで実行され、その速度を低下させてはならないからです。また、0.1秒毎にエキスパートの停止フラグの状態を確認する機能を内蔵しています。 prostotrader 2017.02.04 11:10 #62 Alexey Kozitsyn:ちなみに、インジケータからSleep()を呼び出す ことは禁止されているので、不思議です。 Sleep()が何なのか全く知らないのですが Gennady Mazur 2017.02.04 11:12 #63 prostotrader:アレクセイ!かなりリキッドな楽器です :)2016.12.14 22:01:41.431 Trades 'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms楽器(流動性)の問題ではなく、遅延の問題であり、それはどんな楽器でも起こりうることです。EAを使った取引を積極的に始めてから4年近くになります。私のEAには一時停止はありません(INDICATORSでサーバーからデータがダウンロードされるのを待つための一時停止は除く)。もし、ポーズがかかったら、それはEAのアルゴリズムが正しく動作していない証拠です :( 私はもう長いことトレードをしていますが、EAしか使っていません。でも、ほとんどMT4で。MT5のみでExpert AdvisorをLimitsを使って取引していますが、特に問題はありませんでした。私もEAの追加ポーズには反対です、特にスキャルパーやピプシターだとエントリーを逃しやすいので。 削除済み 2017.02.04 11:12 #64 prostotrader: Sleep()が何なのか全く知らないのですが それなら、今、あなたと私がポーズについて議論しているのはおかしいのでは......。 prostotrader 2017.02.04 11:18 #65 Alexey Kozitsyn: それなら、今、あなたと私がポーズについて議論しているのはおかしいのでは......。Sleep() が何をするかという意味ではなく、私のコードでの応用という意味です。 削除済み 2017.02.04 11:22 #66 prostotrader: Sleep()が何をするかという意味ではなく、私のコードでそれを使うという意味です。 インジケーターにポーズを実装するには? prostotrader 2017.02.04 11:27 #67 Alexey Kozitsyn: インジケーターにポーズを実装するには?//+------------------------------------------------------------------+// Custom indicator Check timer function |//+------------------------------------------------------------------+bool CheckTimer(const uint start_value, const uint per_value){ uint end_value = GetTickCount(); if(end_value < start_value) { if((start_value - end_value) >= per_value) return(true); } else { if((end_value - start_value) >= per_value) return(true); } return(false);}//+------------------------------------------------------------------+//| Custom indicator Get server data function |//+------------------------------------------------------------------+int LoadServerData(const string a_symbol, ENUM_TIMEFRAMES period){ int fail_cnt = 0;//--- while((fail_cnt < 5) && !IsStopped()) { long first_date = long(SeriesInfoInteger(a_symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE));//--- if(first_date > 0) { if(SymbolIsSynchronized(a_symbol)) { // Print( "LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные..." ); return(GetLocalData(a_symbol, period)); } } else { uint start_tick = GetTickCount();//--- while(!CheckTimer(start_tick, 10)) { fail_cnt--; fail_cnt++; } } fail_cnt++; } // Print( "LoadServerData: Первой даты на сервере нет!" ); return(0); }これは古い例です。GetTickCountの誤差が大きいので(最大16ms)、現在はGetMicrosecondCount()を使って います。 How do I open エラー、バグ、質問 Errors, bugs, questions Dmitry Fedoseev 2017.02.04 12:12 #68 Gennady Mazur: 原則的にはそうしているのですが、Fortsの場合、注文はうまく受け入れられるのですが、次のティックではまだポジションがないことが多いのです......。 ここで、追加のオープニングが滑る可能性がある・・・部分的にこの方法で解決すると、注文が受理されたらint変数を増やし、増えた後はオープニングの条件が少し違うので、新たなオープニングは起こらないが・・・注文が受理されなければ変数は増えない、しかしここにコツがある・・・。状態を見誤って、追加注文が出始めてしまったのです。 あなたはすでに自分の質問に答えています。命令に従わなければならない。 Dmitry Fedoseev 2017.02.04 12:14 #69 prostotrader:アレクセイ!かなりリキッドな楽器です :)2016.12.14 22:01:41.431 Trades 'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms楽器(流動性)の問題ではなく、遅延の問題であり、それはどんな楽器でも起こりうることです。EAを使ったトレードを積極的に始めてから約4年。私のEAには一時停止はありません(INDICATORSでサーバーからデータがダウンロードされるのを待つための一時停止は除く)。もし、ポーズがかかったら、それはEAのアルゴリズムが正しく動作していない証拠です :( では、持っていない人はどうすればいいのでしょうか?もしかしたら、そこのアルゴリズムは、それが必要ないようなものなのかもしれません。 Dmitry Fedoseev 2017.02.04 12:16 #70 Gennady Mazur: 私もかなり長い間、EAの力を借りてのみトレードしてきました。でも、ほとんどMT4で。MT5のみでExpert AdvisorをLimitsを使って取引していますが、特に問題はありませんでした。私はスキャルパーやピップスダーであれば、Expert Advisorで一時停止するのは好きではありませんし、ましてやエントリーを逃すだけです。 一時停止が必要な場合はこの限りではありません。 123456789 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ちなみに、インジケータからSleep()を呼び出す のは禁止されているので、不思議です。
Sleep()関数はカスタム・インジケータから呼び出すことはできません。なぜなら、インジケータはインタフェース・スレッドで実行され、その速度を低下させてはならないからです。また、0.1秒毎にエキスパートの停止フラグの状態を確認する機能を内蔵しています。
ちなみに、インジケータからSleep()を呼び出す ことは禁止されているので、不思議です。
アレクセイ!
かなりリキッドな楽器です :)
楽器(流動性)の問題ではなく、遅延の問題であり、それはどんな楽器でも起こりうることです。
EAを使った取引を積極的に始めてから4年近くになります。
私のEAには一時停止はありません(INDICATORSでサーバーからデータがダウンロードされるのを待つための一時停止は除く)。
もし、ポーズがかかったら、それはEAのアルゴリズムが正しく動作していない証拠です :(
Sleep()が何なのか全く知らないのですが
それなら、今、あなたと私がポーズについて議論しているのはおかしいのでは......。
Sleep()が何をするかという意味ではなく、私のコードでそれを使うという意味です。
インジケーターにポーズを実装するには?
// Custom indicator Check timer function |
//+------------------------------------------------------------------+
bool CheckTimer(const uint start_value, const uint per_value)
{
uint end_value = GetTickCount();
if(end_value < start_value)
{
if((start_value - end_value) >= per_value) return(true);
}
else
{
if((end_value - start_value) >= per_value) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function |
//+------------------------------------------------------------------+
int LoadServerData(const string a_symbol, ENUM_TIMEFRAMES period)
{
int fail_cnt = 0;
//---
while((fail_cnt < 5) && !IsStopped())
{
long first_date = long(SeriesInfoInteger(a_symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE));
//---
if(first_date > 0)
{
if(SymbolIsSynchronized(a_symbol))
{
// Print( "LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные..." );
return(GetLocalData(a_symbol, period));
}
}
else
{
uint start_tick = GetTickCount();
//---
while(!CheckTimer(start_tick, 10))
{
fail_cnt--;
fail_cnt++;
}
}
fail_cnt++;
}
// Print( "LoadServerData: Первой даты на сервере нет!" );
return(0);
}
これは古い例です。
GetTickCountの誤差が大きいので(最大16ms)、現在はGetMicrosecondCount()を使って います。
原則的にはそうしているのですが、Fortsの場合、注文はうまく受け入れられるのですが、次のティックではまだポジションがないことが多いのです......。
ここで、追加のオープニングが滑る可能性がある・・・部分的にこの方法で解決すると、注文が受理されたらint変数を増やし、増えた後はオープニングの条件が少し違うので、新たなオープニングは起こらないが・・・注文が受理されなければ変数は増えない、しかしここにコツがある・・・。状態を見誤って、追加注文が出始めてしまったのです。
アレクセイ!
かなりリキッドな楽器です :)
楽器(流動性)の問題ではなく、遅延の問題であり、それはどんな楽器でも起こりうることです。
EAを使ったトレードを積極的に始めてから約4年。
私のEAには一時停止はありません(INDICATORSでサーバーからデータがダウンロードされるのを待つための一時停止は除く)。
もし、ポーズがかかったら、それはEAのアルゴリズムが正しく動作していない証拠です :(
私もかなり長い間、EAの力を借りてのみトレードしてきました。でも、ほとんどMT4で。MT5のみでExpert AdvisorをLimitsを使って取引していますが、特に問題はありませんでした。私はスキャルパーやピップスダーであれば、Expert Advisorで一時停止するのは好きではありませんし、ましてやエントリーを逃すだけです。