初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 741 1...734735736737738739740741742743744745746747748...1503 新しいコメント Alexey Volchanskiy 2017.04.06 22:50 #7401 fxsaber: 曲解しないでくださいということですね。もし、そうだとしたらだから、こうなっているんです。double GetPositionCommission( void ){ double Commission = ::PositionGetDouble(POSITION_COMMISSION); // На случай, если POSITION_COMMISSION не работает if (Commission == 0) { const ulong Ticket = MT4ORDERS::GetPositionDealIn(); if (Ticket > 0) { const double LotsIn = ::HistoryDealGetDouble(Ticket, DEAL_VOLUME); if (LotsIn > 0) Commission = ::HistoryDealGetDouble(Ticket, DEAL_COMMISSION) * ::PositionGetDouble(POSITION_VOLUME) / LotsIn; } } return(Commission);} または投稿が古いのは承知していますが、今、ピンときたのです。このビットは正しくありません、FXの手数料はゼロにすることができます// На случай, если POSITION_COMMISSION не работает if (Commission == 0) Maksym Moroz 2017.04.07 04:22 #7402 Artyom Trishkin:ObjectGetValueByShift() (MT4のみ),ObjectGetValueByTime() (MT4、MT5) ありがとうございました。 fxsaber 2017.04.07 04:24 #7403 Alexey Volchanskiy:投稿が古いのは承知していますが、今、ピンときたのです。このビットは正しくありません、FXの手数料はゼロにすることができます どのように不正確なのでしょうか? Klimenko_a_e 2017.04.09 22:08 #7404 MQL5におけるコピーコンストラクタの問題コピーコンストラクタの動的配列 this.arr は、デバッガからは1次元と認識されます。その結果,出力ではob2.arrのサイズは0になります。なぜ?同じフラグメントがMQL4で正しく動作します。MT5エディターMetaEditor 5.0 1578MT4エディタMetaEditor 5.0 1562class obj { public: double arr[][2]; obj(){} obj(obj &o) { ArrayCopy(this.arr,o.arr); } obj operator=(obj &o) { ArrayCopy(this.arr,o.arr); return &this; } }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ obj Copy(obj &o) { return o; }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { //--- obj ob1,ob2; ArrayResize(ob1.arr,3); ob2=Copy(ob1); bool stop=true; } fxsaber 2017.04.10 04:39 #7405 Klimenko_a_e:その結果、出力ではサイズob2.arrが0になります。なぜ?obj* Copy(obj &o) { return & o; };そうでない場合は、新しいオブジェクトを作成することになります。 void operator=(obj &o) { ArrayCopy(this.arr,o.arr); return; // &this; }そうしないと、余計なことが起きてしまう。あなたのコードがMQL4で正しく動作していたかは疑問です。 Akinak 2017.04.10 13:10 #7406 こんにちは!単一の保留注文を 開く方法を教えてください。ベイが開いているときに1つの保留注文を開く必要がある場合、ループを止めるにはどうすればよいですか?預金がなくなるまで何枚も開けられる!保留中の注文を1つ開く方法がわかりません。 Vladislav Andruschenko 2017.04.10 13:12 #7407 Akinak:こんにちは!単一の保留注文を 開く方法を教えてください。ベイが開いているときに1つの保留注文を開く必要がある場合、ループを止めるにはどうすればよいですか?預金がなくなるまで何枚も開けられる!ありがとうございました。まずは「彼が何者なのか」を知る必要があります。 Akinak 2017.04.10 14:18 #7408 Vladislav Andruschenko:まずは「何者なのか」を知る必要があります。Vladislav Andruschenko: まず、「彼が何者なのか」を知る必要があります。for(int i=0; i<OrdersTotal();i++){if(OrderSelect(i,SELECT_BY_POS))if(OrderSymbol()==Symbol())とする。if(OrderMagicNumber()==Magic)if(b>0){int tak=OrderSend(Symbol(),OP_SELLSTOP,Lots_work,SOPrase,Slip,0,0,",Magic,0,clrRed) とする。if(tak>0)Print("SELLSTOPオッケー");さもなくばPrint("SELLSTOP Error");}if(s>0){OrderSend(Symbol(),OP_BUYSTOP,Lots_work,BOPrase,Slip,0,0,", Magic,0,clrBlue);if(tik>0)Print("BUYSTOPオッケー");さもなくばPrint("BUYSTOP Error");}} Questions from Beginners MQL5 どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Vladislav Andruschenko 2017.04.10 17:45 #7409 さて、このサイクルで何をするかというと、こうです。ポジションを建てる→注文を出す→ポジションの 数が増える→このサイクルを無限大に繰り返す。int OrderSTotal=OrdersTotal(); for(int i=0; i<OrderSTotal;i++) { if(OrderSelect(i,SELECT_BY_POS)) if(OrderSymbol()==Symbol()) if(OrderMagicNumber()==Magic) { if(b>0) { int tak=OrderSend(Symbol(),OP_SELLSTOP,Lots_work,SOPrase,Slip,0,0,"",Magic,0,clrRed); if(tak>0) Print("SELLSTOP Ok"); else Print("SELLSTOP Error"); } if(s>0) { int tik=OrderSend(Symbol(),OP_BUYSTOP,Lots_work,BOPrase,Slip,0,0,"",Magic,0,clrBlue); if(tik>0) Print("BUYSTOP Ok"); else Print("BUYSTOP Error"); } } } //+------------------------------------------------------------------+ bとsが何であるかを知る必要がある Klimenko_a_e 2017.04.10 17:58 #7410 fxsaber:そうでない場合は、新しいオブジェクトを作成することになります。そうしないと、余計なことが起きてしまう。あなたのコードがMQL4で正しく動作していたかは疑問です。実際のコードでは - この関数はオブジェクトを返します。この場合、コピーコンストラクタは一時的なコピーを作成する必要があると思います。このコードはMQL5 build 1545で正しく動作します。新しいビルドでは、コピーコンストラクタが1次元配列のサイズさえも変更できません:エラー4007。これは正しくないと私は思います。 1...734735736737738739740741742743744745746747748...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
曲解しないでくださいということですね。もし、そうだとしたら
{
double Commission = ::PositionGetDouble(POSITION_COMMISSION);
// На случай, если POSITION_COMMISSION не работает
if (Commission == 0)
{
const ulong Ticket = MT4ORDERS::GetPositionDealIn();
if (Ticket > 0)
{
const double LotsIn = ::HistoryDealGetDouble(Ticket, DEAL_VOLUME);
if (LotsIn > 0)
Commission = ::HistoryDealGetDouble(Ticket, DEAL_COMMISSION) * ::PositionGetDouble(POSITION_VOLUME) / LotsIn;
}
}
return(Commission);
}
投稿が古いのは承知していますが、今、ピンときたのです。
このビットは正しくありません、FXの手数料はゼロにすることができます
ObjectGetValueByShift() (MT4のみ),ObjectGetValueByTime() (MT4、MT5)
ありがとうございました。
投稿が古いのは承知していますが、今、ピンときたのです。
このビットは正しくありません、FXの手数料はゼロにすることができます
どのように不正確なのでしょうか?
MQL5におけるコピーコンストラクタの問題
コピーコンストラクタの動的配列 this.arr は、デバッガからは1次元と認識されます。
その結果,出力ではob2.arrのサイズは0になります。
なぜ?
同じフラグメントがMQL4で正しく動作します。
MT5エディター
MetaEditor 5.0 1578
MT4エディタ
MetaEditor 5.0 1562
その結果、出力ではサイズob2.arrが0になります。
なぜ?
そうでない場合は、新しいオブジェクトを作成することになります。
そうしないと、余計なことが起きてしまう。
あなたのコードがMQL4で正しく動作していたかは疑問です。
預金がなくなるまで何枚も開けられる!
保留中の注文を1つ開く方法がわかりません。
預金がなくなるまで何枚も開けられる!
ありがとうございました。
まずは「彼が何者なのか」を知る必要があります。
まずは「何者なのか」を知る必要があります。
まず、「彼が何者なのか」を知る必要があります。
}
さて、このサイクルで何をするかというと、こうです。
ポジションを建てる→注文を出す→ポジションの 数が増える→このサイクルを無限大に繰り返す。
bとsが何であるかを知る必要がある
そうでない場合は、新しいオブジェクトを作成することになります。
そうしないと、余計なことが起きてしまう。
あなたのコードがMQL4で正しく動作していたかは疑問です。
実際のコードでは - この関数はオブジェクトを返します。
この場合、コピーコンストラクタは一時的なコピーを作成する必要があると思います。
このコードはMQL5 build 1545で正しく動作します。
新しいビルドでは、コピーコンストラクタが1次元配列のサイズさえも変更できません:エラー4007。
これは正しくないと私は思います。