MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 41 1...343536373839404142434445464748...1953 新しいコメント Artyom Trishkin 2016.12.21 00:36 #401 Vitaly Muzichenko: はい、その通りです。ただ、コードがこのようなスタイルで書かれているため、前の発言者が誤解してしまったのです。そして、確認することは?//+------------------------------------------------------------------+//| TestLogics.mq4 |//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |//| https://login.mql5.com/ru/users/artmedia70 |//+------------------------------------------------------------------+#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"#property link "https://login.mql5.com/ru/users/artmedia70"#property version "1.00"#property strict#property script_show_inputs//--- input parametersinput int Value=0; // Количество имеющихся ордеров//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart() {//--- if(Value>0) Alert("1. Количество ордеров=",Value); else Alert("2. Это код после else"); { Alert("3. Ордера отсутствуют"); } }//+------------------------------------------------------------------+ 中括弧の中のコードはif-elseの条件には関係なく、Valueの値に関係なく常に実行されます。 Any questions from newcomers カスタムインジケータ(機能-iCustom)使用時のEA加速度理論について 初心者の方からの質問 MQL5 MT5 MetaTrader Vitaly Muzichenko 2016.12.21 00:45 #402 Artyom Trishkin:そして、それを確認する? 中括弧の中のコードはif-elseの条件には関係なく、Valueの値に関係なく常に実行されます。ゲッ、ホントだ、今改めて元のコードを見直してみたら、間違っていた。文体がなんだか曲がっていて、戸惑いました。 Mickey Moose 2016.12.21 00:57 #403 再確認し、"extra "を削除しました。ゼロの割り算は、どこへも行かない ファイル: zero.mq4 5 kb Vitaly Muzichenko 2016.12.21 01:07 #404 trader781:再確認し、"extra "を削除しました。ゼロの割り算は、どこへも行かない Vitalie Postolache 2016.12.21 01:08 #405 trader781:再確認し、"extra "を削除しました。ゼロによる除算は消えて いないなぜなら、除数が0と異なるかどうかのチェックがないからです。注文がなく、ロットが0であるときに、さらにコードを実行する意味があるのでしょうか? Vitaly Muzichenko 2016.12.21 01:11 #406 チェックを入れるvoid ModifyOrders() { double avg_price=0; price=0; bool z=true; double orderlots=0; for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) && (OrderType()==FindLastOType())) { price+=OrderOpenPrice()*OrderLots(); orderlots+=OrderLots(); } } if(orderlots==0) { return; } // если ничего нет - выходим avg_price=NormalizeDouble(price / orderlots,Digits); if(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits); if(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits); for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) &&(OrderType()==FindLastOType())) z=OrderModify(OrderTicket(),OrderOpenPrice(),0,tp,0); if (!z) Print("Ошибка функции модифицирования"); } } 初心者の方からの質問 MQL5 MT5 MetaTrader Any questions from newcomers 10ポイント 3.mq4 Mickey Moose 2016.12.21 01:17 #407 Vitaly Muzichenko:チェックを入れるヴィタリー・ポストラッシュ でも、ロットは見逃した。ありがとう。 Vitaly Muzichenko 2016.12.21 01:21 #408 trader781: でも、ロットは外しました、ありがとうございました。 見逃してもいい、日誌を読まない のはダメ、全部書いてある、どの行が間違っているのか書いてある。 Mickey Moose 2016.12.21 01:27 #409 Vitaly Muzichenko: 見逃してもいい、雑誌を読まなくても いい、そこに全部書いてある。読むつもりはなかったんです。マーケットで確認する』と書いてある。私の製品は決して市場に出ることはない。ゼロで割ることについて上のはどうですか?そこから 先は想定内です。{price+=OrderOpenPrice()*OrderLots()です。orderlots+=OrderLots()。}}if(orderlots==0) {return; }// 何もなかったら終了avg_price=NormalizeDouble(price / orderslots,Digits);if(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);if(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits); Vitaly Muzichenko 2016.12.21 01:31 #410 trader781: 読むつもりはなかったんです。市場でテストすること」と書いてあります。私の製品は決して市場に出回ることはない。テスターのマガジンの話です追記:コードを正常な状態に組み立て、修正した後、テスターで実行し、ログのエラーを読み取る。ここでコードの切れ端を渡すんですね。 1...343536373839404142434445464748...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
はい、その通りです。ただ、コードがこのようなスタイルで書かれているため、前の発言者が誤解してしまったのです。
そして、確認することは?
//| TestLogics.mq4 |
//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Value=0; // Количество имеющихся ордеров
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
if(Value>0) Alert("1. Количество ордеров=",Value);
else Alert("2. Это код после else");
{
Alert("3. Ордера отсутствуют");
}
}
//+------------------------------------------------------------------+
そして、それを確認する?
ゲッ、ホントだ、今改めて元のコードを見直してみたら、間違っていた。文体がなんだか曲がっていて、戸惑いました。
再確認し、"extra "を削除しました。
ゼロの割り算は、どこへも行かない
再確認し、"extra "を削除しました。
ゼロの割り算は、どこへも行かない
再確認し、"extra "を削除しました。
ゼロによる除算は消えて いない
なぜなら、除数が0と異なるかどうかのチェックがないからです。注文がなく、ロットが0であるときに、さらにコードを実行する意味があるのでしょうか?
チェックを入れる
{
double avg_price=0;
price=0;
bool z=true;
double orderlots=0;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()==FindLastOType()))
{
price+=OrderOpenPrice()*OrderLots();
orderlots+=OrderLots();
}
}
if(orderlots==0) { return; } // если ничего нет - выходим
avg_price=NormalizeDouble(price / orderlots,Digits);
if(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
if(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits);
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) &&(OrderType()==FindLastOType()))
z=OrderModify(OrderTicket(),OrderOpenPrice(),0,tp,0);
if (!z)
Print("Ошибка функции модифицирования");
}
}
チェックを入れる
でも、ロットは外しました、ありがとうございました。
見逃してもいい、雑誌を読まなくても いい、そこに全部書いてある。
読むつもりはなかったんです。マーケットで確認する』と書いてある。私の製品は決して市場に出ることはない。
ゼロで割ることについて
上のはどうですか?そこから 先は想定内です。
{
price+=OrderOpenPrice()*OrderLots()です。
orderlots+=OrderLots()。
}
}
if(orderlots==0) {return; }// 何もなかったら終了
avg_price=NormalizeDouble(price / orderslots,Digits);
if(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
if(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits);
読むつもりはなかったんです。市場でテストすること」と書いてあります。私の製品は決して市場に出回ることはない。
テスターのマガジンの話です
追記:コードを正常な状態に組み立て、修正した後、テスターで実行し、ログのエラーを読み取る。ここでコードの切れ端を渡すんですね。