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

 
sandex:

OrderCheck 機能を使用したことがある人。

こんな構造です。

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

コンパイル時に、'result' - parameter conversion is not allowed.というエラーが発生します。

OrderCheckを削除すると、すべてが正常にコンパイルされ、テスターでポジションが開きます。

機能の説明を見てください。MqlTradeCheckResultの 応答構造について書かれています。
 
Yedelkin:
機能の説明をご覧ください。MqlTradeCheckResultの 応答構造について書かれています。

ありがとうございました。

 
Dmitriy2:

その内容はというと...。

指定された日付からの取引の利益をカウントする必要があります。実際とはまったく違う結果を出してしまうのです。例えば、私は約2000という結果ではなく、611という結果を得ました。1日あたりのチェックをするようになりました(コメント行)。同じ結果の日もある(!!)のですが、大抵はあるべき姿ではありません...(規則性は見つけられませんでした)。 そしてデバッガーは、取引量 全体に対して全く同じサイクルを生成しています。int変数以外は値が表示されない(Expressionが評価できない)ので、この件数だけしかトレースできないのですが。

このコードは正しいのか、デバッガの使い方は正しいのか...?

トランザクションループは

for(i=0;i<HistoryDealsTotal();i=i++)
デバッガで、「ステップイン」(F11)を使用します。そして、変数や式が定義されている関数に入力すると、その値が表示されます。
 
Valmars:

トランザクションサイクルは

デバッガで「Step with Entry」(F11)を使用します。そして、変数や式が定義されている関数に入力すると、その値を表示します。

をゼロから始めるとすると...。しかし、取引数字がゼロから始まるなんて、どこに書いてあるんだ?今、私たちは10611(以前は611、代わりに約2000)、すなわち、プラス元の預金のサイズを持っているという事実から判断すると、私はそれについてよく分からない......たとえゼロでも、1でも、どこからが1万なのかがわからない。

デバッガ、なるほど、F11か...。

削除済み  
Dmitriy2:

ゼロから始めるとすると...。しかし、取引数字がゼロから始まるなんて、どこに書いてあるんだ?今あなたが10611(それは約611だった前に、代わりに約2000)、すなわち、プラス元の預金のサイズを得るという事実から判断して、私はそれについてよく分からない...たとえゼロでも、1でも、どこからが1万なのかがわからない。

デバッガ、なるほど、F11か...。

最初の取引は、通常、手付金である。履歴は0からカウントされるようなので、0番目の取引は入金になります。

取引の利益が どのような計算式で算出されるのか、明確にすることは可能か?

追記

記憶が正しければ、結果は次のように計算されるはずです - TotalProfit = Profit+Swap-Commision;


 
Kos:
SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), がゼロを返すのはなぜですか?
0は制限なしを意味します。
 
Interesting:

最初の取引は通常、預金である。取引は0から履歴にカウントされるようなので、私の勘違いでなければ、0回目の取引は入金になりますね。

取引の利益を 算出するための計算式を具体的に教えてください。

追記

記憶が正しければ、結果は次のように計算されるはずです - TotalProfit = Profit+Swap-Commision;


最後のページでフルコードで

このコードによって、預金はいかなる場合にも考慮されるべきではありません。

手数料もプラス - マイナスです。

 
Yedelkin:

最初、コンパイラは "#import "lbS7N_Servis.ex5 "がないと文句を言った。

この行を削除したら、ギブアップしました。

2010.08.28 22:19:51 サービス[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 サービス[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

コード内の口座番号を自分の口座番号に置き換えると、こうなりました。

2010.08.28 22:26:46 サービス[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 サービス[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

MQサーバー、ビルド316。

ありがとうございます。すべてはあなたのためにあるべき姿です。まだ、わかっていないんです。
 
sergey1294:

と私のM1が合わなかったのです。

あなたもバグがあるけど、私より少ないということです。

プログラムとシステムの接続で探すべきかもしれませんね。

どのようなシステムなのでしょうか?

core2duo 1.3 Ghz 64 Win7 HB ライセンス、4GB ddr 2 RAM、ビルドを持っています。316

 
simpleton:

そして、3つものユニークなシチュエーションがあるのです。これが検出されたものです。また、未検出のものはどれくらいあるのでしょうか?

この状態で、MetaQuotesは1ヶ月後にチャンピオンシップ2010をスタートさせるのですか?

ああ、MetaTrader 5には、どれだけの "不思議 "があるのだろう...。

勝者は、プログラムに多くの誤りが含まれており、プログラムの小さな不具合と相まって、誰も追いつけないほどの効果を発揮するものであろう。