エラー、バグ、質問 - ページ 398

 

最近のいくつかのビルド(458を含む)では、2台のテスターのうち1台で一貫して問題が観察されています。

1) エージェント起動エラー

EM 0 Core 1 11:44:11 エージェントプロセス開始
QN 0 Core 1 11:44:11 127.0.0.1:3000に接続しています。
KI 0 コア 1 11:44:15 接続中
HO 2 Core 1 11:44:17 tester agent synchronization error.
GM 2 Core 1 11:44:17 接続解除
LK 0 コア 1 11:44:17 接続終了

CQ 0 テスター 11:44:14 MetaTester 5 build 450 (2011年5月16日)
MP 0 Server 11:44:14:14 MetaTester 5 が 127.0.0.1:3000 で開始されました。
LI 0 起動 11:44:14 初期化終了
MR 2 127.0.0.1 11:44:18 close socket
EI 0 127.0.0.1 11:44:18 ログイン (ビルド 450)
EJ 0 テスター 11:44:19 テスターエージェントのシャットダウン

2) エージェントタブに入ると、端末が約30秒間無反応(砂時計)になります。

問題は、シングルコアプロセッサや リモート(遠隔)エージェントが ないことに関係しているという推測があります。

 
stringo:
実は458のビルドはすでにリリースされているんです。

そうそうしかし、問題は残ります。

2011.05.27 19:19:57 Core 2 スローエージェントに失敗しました。
2011.05.27 19:19:57 Core 2 接続を終了しました。
2011.05.27 19:19:57 Core 2 too slow agent.ビジータイム:3703ms、平均タイム:915ms
2011.05.27 19:19:55 Core 1 スローエージェントに失敗しました。
2011.05.27 19:19:55 Core 1 接続を終了しました。
2011.05.27 19:19:55 Core 2 共通の同期が完了しました。
2011.05.27 19:19:54 Core 1 too slow agent.ビジータイム:3672ms、アベレージタイム:915ms
2011.05.27 19:19:53 iRU1 スローエージェントに失敗しました。
2011.05.27 19:19:53 iRU1 接続を終了しました。
2011.05.27 19:19:53 Core 2 認証済み (エージェントビルド 458)
2011.05.27 19:19:53 Core 2 接続しました。
2011.05.27 19:19:53 iRU1 too slow agent.ビジータイム:3672ms、アベレージタイム:915ms

 
MONTEGRO:

そうそうしかし、問題は残ります。

考え続けよう。
削除済み  

以下のニュアンスを明確にしてください。

1. 追加トランザクション送信時のSL/TPのチェック/処理アルゴリズム。例による明瞭化。

注:すべての取引要求にはORDER_FILLING_AONパラメータがあり、すでにロングポジションが存在する。

シナリオその1.もっと買いたい(もちろん、同じマークで)。ボリュームを追加してSL/TPを調整したトレードを送ります。リクエストの実行に成功した場合、結果は、追加ロット+更新されたSL/TP?

シナリオその2売りたい。SL/TPを指定せず、小さいロットで取引を申し込んだ(SL/TP = 0)。残りのポジションは、ロット減少+SL/TP削除?

シナリオその3。シナリオ2と同じで、SL/TPの制限を設定しようとしているだけです(ロングポジションでは不可能と分かっています)。結果は?

2.取引量を確認するアルゴリズムについて、例を挙げて説明せよ。

最小ロット/最小ロットステップ」の組み合わせに変更はありますか?

注:すべての取引要求にはORDER_FILLING_CANCELまたはORDER_FILLING_RETURN パラメータがあり、1.0のロングポジションがすでに存在します。

シナリオ1.私はマーケットから退出しようとしています(既存のポジションを同じ大きさの反対売買で決済する)。相場はニュースなので、全額リクオートがあるので、最低でも少しは出金(ORDER_FILLING_CANCELまたはORDER_FILLING_RETURN)するようにしています。この取引は部分的に0.99ロットで行われています。 したがって、ポジションを完全にクローズするには、0.01ロットの取引を送信する必要がありますが、私はできません - 最小ロットは0.1です。つまり、まず0.09ロットを追加して0.1にしてから、(すでにORDER_FILLING_AONで)決済しようとすればいいのでしょうか?

シナリオその2取引が部分的に完了し、残りのポジション量が最小ステップより少ない場合(0.999ロットで部分完了、0.001ロットは「ぶら下がり」状態のまま)。そのような事態になることはないのでしょうか。

追伸:理想を言えば、理論上可能なすべてのケースを「クローズ」するような、統一されたオーダー設定ロジックが欲しいところです。ドキュメントを探しても見つからなかったので、もしかしたら見落としていたかもしれません...。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
uncleVic:

ライブラリにエラーはありません。このクラスを使ってインジケータ・データを扱うには、2つの微妙な点があります(ヘルプでは十分に説明されていないかもしれません)。

1.クラスを通じてインジケータデータを利用できるようにするために、クラスはインジケータからこのデータをコピーする必要があります。そのためには、データが変更された疑いが少しでもあれば、Refresh(int)メソッドを呼び出す。あなたの場合

2.クラスを通じて十分な「深さ」でインジケータ・データを利用できるようにするためには、バッファ・サイズを設定する必要があります(デフォルトではバッファ・サイズは256です)。そのためには、オブジェクトを作成した後、BufferResize(int)メソッドを呼び出します。あなたの場合

分かりにくかったらごめんなさい。追加の質問にお答えします。

標準 ライブラリを使ったインジケータの簡単なコードだけでも教えてください。ドキュメントや例がないので、どのように動作するのか理解できません。例えば、天底線が雲より上にある場合は緑色の矢印、天底線が雲より下にある場合は赤色の矢印を各バー下に描画します。
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
削除済み  

インターフェース設定の柔軟性 - シンボル名の表示に関する設定において、mt5をユーザーにとってより柔軟なものにすることが提案されています。- 例えば - ないgbpusdが...ポンド、"だけでなく、などのパネルを分離の導入 - 通貨と下矢印、金属、株式、何がバーで、一つの山ですべてされていないであろう、分離も、通貨、ポンドや小さな緑の紙の記号、金属などのミニアイコンを追加できます - よく金小さなバー、等約このような柔軟性の設定色、プラットフォームで利用できるスライダーやペインは、私は現時点では確かに簡単で良いので、広告のように聞こえるしないように願っています...:)
また、白地に黒があるように、例えば主要なハイライトは黒い背景と白いフォント、媒体、青と白と全く重要でない、シンボルのリストでシンボルの下に、背景だけでなく、色のshifftを変更することができればいいと思います......

 
Graff:
標準 ライブラリを使ったインジケータの簡単なコードだけでも教えてください。ドキュメントや例がないので、どのように動作するのか理解できません。例えば、天底線が雲より上にある場合は緑色の矢印、天底線が雲より下にある場合は赤色の矢印を各バー下に描画します。
あなたの「魚」と、簡単な「願い」を添えて。可能であれば(早くは約束できませんが)拝見させていただきます。
 

papaklass:

アルゴリズム 2:

1. 許容最小量の倍数でポジションをクローズする。最小ロットは0.1ロットですので、0.99ロットの例はありえません。他の市場参加者は、0.1ロットの倍数で注文を設定する。だから、あなたの例はありえないのです。

2. ポイント1を参照。

つまり、注文実行 後にポジション量が最小値より少なくなった場合、この注文は拒否されると言いたいのですね。

MQサーバーでは、step=minimum lot=0.01となっていますが、step<minimum lotの例は他にありますか?端末の動作を確認する

開発者からの回答は期待できない。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Graff:
標準 ライブラリを使ったインジケータの簡単なコードだけでも教えてください。ドキュメントや例がないので、どのように動作するのか理解できません。例えば、天底線>起点線が雲の上にある場合は緑色の矢印、天底線<起点線が雲の下にある場合は赤色の矢印を各バー下に描画します。

biblaを使ったこの例では、ただ天底線を引くだけです。
ここから類推してさらに4つのバッファを追加し、解析することが容易になります(矢印の部分)。

注:インジケータ・バッファの値を取る方法は、上記の方法以外に少なくとも2つあります。表示されているものだけが可能なわけではありません

#property indicator_chart_window
#property indicator_buffers  1
#property indicator_plots    1
#property indicator_color1   clrRed
#property indicator_type1    DRAW_LINE

#include <Indicators\Trend.mqh>  // подключили библу

input int tenkan=9;
input int kijun=26;
input int senkou=52;

CiIchimoku ichi; // объект индюка
int h; // его хендл

double Tenkan[]; // буфер для тенкана
//------------------------------------------------------------------
int OnInit()
{
  SetIndexBuffer(0, Tenkan, INDICATOR_DATA);
  ArraySetAsSeries(Tenkan, true);

  ichi.Create(Symbol(), Period(), tenkan, kijun, senkou); // создали буфера
  h=ichi.Handle(); // получили хендл
  return(0);
}
//------------------------------------------------------------------
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
  ichi.Refresh(0); // обновили индюк

  if(BarsCalculated(h)<rates_total) return(0); // если расчет не нужен
        
  int to_copy; // определяем число баров для копирования
  if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total; 
  else { to_copy=rates_total-prev_calculated; to_copy++; }

  // Номера буферов: 0 - TENKANSEN_LINE, 1 - KIJUNSEN_LINE, 2 - SENKOUSPANA_LINE, 3 - SENKOUSPANB_LINE, 4 - CHINKOUSPAN_LINE.
  if (CopyBuffer(h,0, 0,to_copy, Tenkan)<=0) { Print("ошибка"); return(0); }

  return(rates_total);
}
 
uncleVic:

クラスとヘルプに欠陥があります - Refresh関数のフラグが説明されていません。