MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 70 1...636465666768697071727374757677...1953 新しいコメント Mickey Moose 2017.01.14 09:40 #691 wishmast:OrdersTotal()関数で 注文を検索すると-1と表示されるのはなぜか教えてください。 例:for (i=OrdersTotal()-1 ;i>=0; i--)なぜOrdersTotal()でないのか?この関数での注文のカウントは0から始まるのでしょうか、それとも1から始まるのでしょうか?つまり、注文が1件の場合、OrdersTotal()は0になるのか1になるのか? ゼロから計算 Sergey Gritsay 2017.01.14 10:18 #692 wishmast:OrdersTotal()関数で 注文を検索すると-1と表示されるのはなぜか教えてください。 例:for (i=OrdersTotal()-1 ;i>=0; i--)なぜOrdersTotal()でないのか?この関数での注文のカウントは0から始まるのでしょうか、それとも1から始まるのでしょうか?つまり、注文が1件の場合、OrdersTotal()は0になるのか1になるのか?OrdersTotal() は数量を表示します。つまり、注文が 1 件であればOrdersTotal() は 1 になりますが、注文のリストでは 0 から始まるレポートと なります0 - 1次1 - 2次2 - 3番目 といった具合に。 そのため、リストの最後から検索を始めると、OrdersTotal() の総数から1を引 かなければならないのです。 wishmast 2017.01.14 11:36 #693 Sergey Gritsay:OrdersTotal()は数量を表示します。つまり、注文が1 つならOrdersTotal()は1になりますが、注文のリストではゼロから 始まります。0 - 1次1 - 2次2 - 3番目 といった具合に。 そのため、リストの最後から検索を始めると、OrdersTotal() の総数から1を引 かなければならないのです。 しかし、最初の式から1を引かなければ、順序が1つであれば2回の繰り返しが起こるので、エラーにはなりません。1回で全部できるのに、2回繰り返す必要がないのであれば、-1、ですね。 Sergey Gritsay 2017.01.14 12:22 #694 wishmast: しかし、最初の式で1を引かなければエラーにはなりません。もし、1つの順序があれば、2回の繰り返しが起こります。必要なことが1回で済むのに2回繰り返す必要がないのであれば、-1、ですね。 はい、その通りです。 Alexey Viktorov 2017.01.14 12:49 #695 Sergey Gritsay: はい 正しいちょっと違うか。プリフィックスデクリメントを 使用することができます。for(int i = OrdersTotal(); i >= 0; --i) Vitalie Postolache 2017.01.14 14:07 #696 trader781: 注文の山があるのだから、必要なものを取り出せばいいのでは?(正しいもの)を使って、好きなことをする? 例えば、順序(i-4)のように。 MT4テスターでしか動作しないため。または、1つのシンボルだけで、このEAだけで取引する場合。 Mickey Moose 2017.01.14 14:12 #697 Vitalie Postolache: なぜなら、これはMT4テスターでしか動作しないからです。または、1つのシンボルだけで、このEAだけで取引する場合。考えてみれば、EAはどのペアも同じで、口座残高だけが 共通している(切り替えは最後になる)EAがマーケットオープンの条件を満たした注文にフィルターをかける。どうしたものか Vitalie Postolache 2017.01.14 14:16 #698 trader781:考えてみれば、EAはどのペアも同じで、口座残高だけが 共通している(切り替えは最後になる)EAのマーケットオープン条件を満たす全ての注文を対象に、シミュレーションを行う。どうしたものか さて、何が問題なのかは、すでに上記で説明されていますね。注文を自分のものだけとしてカウントし、合計金額で配列のインデックスを取ることができます - 私たちは空のセルを持つ配列を取得します。これは何のため?また、配列が空でなかった場合、「不要な」フィールドには不要なゴミが含まれることになり、エラーにつながる、お金の話になってしまう。 Mickey Moose 2017.01.14 14:26 #699 Vitalie Postolache: さて、何が問題なのかは、すでに上記で説明されていますね。注文は自分のものだけをカウントし、配列のインデックスをとって合計数を計算するため、空のセルを含む配列になります。これは何のため?また、配列が空でなかった場合、「不要な」フィールドには不要なゴミが含まれることになり、エラーにつながる、お金の話になってしまう。なるほど、そういうことだったんですね。struct myorder{int Ticket;double orderopenprice;int ordertype;double profit;double stoploss;double lot;}; myorder orders[];int i;int count1=0;void CalcOrders(){for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) && (OrderType()<2)) orders[count1].Ticket=OrderTicket(); orders[count1].lot=OrderLots(); orders[count1].orderopenprice=OrderOpenPrice(); orders[count1].ordertype=OrderType(); orders[count1].profit=OrderProfit(); orders[count1].stoploss=OrderStopLoss(); count1++; }} だろう? Any questions from newcomers 10ポイント 3.mq4 コーディングの方法は? Sile Si 2017.01.14 15:00 #700 条件を書くのを手伝ってください:口座の利用可能資金が 入金額の50%未満であれば{アクション} MT5 1...636465666768697071727374757677...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
OrdersTotal()関数で 注文を検索すると-1と表示されるのはなぜか教えてください。
例:for (i=OrdersTotal()-1 ;i>=0; i--)
なぜOrdersTotal()でないのか?
この関数での注文のカウントは0から始まるのでしょうか、それとも1から始まるのでしょうか?つまり、注文が1件の場合、OrdersTotal()は0になるのか1になるのか?
OrdersTotal()関数で 注文を検索すると-1と表示されるのはなぜか教えてください。
例:for (i=OrdersTotal()-1 ;i>=0; i--)
なぜOrdersTotal()でないのか?
この関数での注文のカウントは0から始まるのでしょうか、それとも1から始まるのでしょうか?つまり、注文が1件の場合、OrdersTotal()は0になるのか1になるのか?
OrdersTotal() は数量を表示します。つまり、注文が 1 件であればOrdersTotal() は 1 になりますが、注文のリストでは 0 から始まるレポートと なります
0 - 1次
1 - 2次
2 - 3番目
といった具合に。
そのため、リストの最後から検索を始めると、OrdersTotal() の総数から1を引 かなければならないのです。
OrdersTotal()は数量を表示します。つまり、注文が1 つならOrdersTotal()は1になりますが、注文のリストではゼロから 始まります。
0 - 1次
1 - 2次
2 - 3番目
といった具合に。
そのため、リストの最後から検索を始めると、OrdersTotal() の総数から1を引 かなければならないのです。
しかし、最初の式で1を引かなければエラーにはなりません。もし、1つの順序があれば、2回の繰り返しが起こります。必要なことが1回で済むのに2回繰り返す必要がないのであれば、-1、ですね。
はい 正しい
ちょっと違うか。
プリフィックスデクリメントを 使用することができます。
注文の山があるのだから、必要なものを取り出せばいいのでは?(正しいもの)を使って、好きなことをする? 例えば、順序(i-4)のように。
なぜなら、これはMT4テスターでしか動作しないからです。または、1つのシンボルだけで、このEAだけで取引する場合。
考えてみれば、EAはどのペアも同じで、口座残高だけが 共通している(切り替えは最後になる)
EAがマーケットオープンの条件を満たした注文にフィルターをかける。
どうしたものか
考えてみれば、EAはどのペアも同じで、口座残高だけが 共通している(切り替えは最後になる)
EAのマーケットオープン条件を満たす全ての注文を対象に、シミュレーションを行う。
どうしたものか
さて、何が問題なのかは、すでに上記で説明されていますね。注文は自分のものだけをカウントし、配列のインデックスをとって合計数を計算するため、空のセルを含む配列になります。これは何のため?また、配列が空でなかった場合、「不要な」フィールドには不要なゴミが含まれることになり、エラーにつながる、お金の話になってしまう。
なるほど、そういうことだったんですね。
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int count1=0;
void CalcOrders()
{
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
orders[count1].Ticket=OrderTicket();
orders[count1].lot=OrderLots();
orders[count1].orderopenprice=OrderOpenPrice();
orders[count1].ordertype=OrderType();
orders[count1].profit=OrderProfit();
orders[count1].stoploss=OrderStopLoss();
count1++;
}
}
だろう?