初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 494 1...487488489490491492493494495496497498499500501...1504 新しいコメント Vitalii Ananev 2016.01.12 11:25 #4931 Nickolay72: 昨日まで、私のEAは1つずつしか注文を開かず、私が注文を出すまで次の注文は開きません。 さて、前のバーがチャンネルの上(下)で開いたときに私のEAが注文を開くようにするにはどうすればよいでしょうか? if (CountTrades()==0) CheckForOpen(); else { if(CountTrades()<max_trades) CheckForOpen(); }このコード断片を分析すると、このコードによれば、CountTrades() 関数が0を返した場合、条件 if (CountTrades()==0) CheckForOpen() が実行 され、関数CheckForOpen() が呼び出されることになります。次のティックでは、注文がオープンされていれば、CountTrades()関数が1を返し、else条件が成立しているはず です。.... else { if(CountTrades()<max_trades) CheckForOpen(); }CountTrades()<max_tradesと表示された場合、CheckForOpen() 関数が再度実行されます。このコードでは、変数 max_tradesの値が3になっています。したがって、4つの注文を開くことになります。 EAが正しく注文を開けない場合、CheckForOpen()関数でポジションを 開く条件を定義しているロジックを確認してください。また、(CurrTime < EaStartTime || CurrTime >= EaEndTime)であれば、時間条件を確認する。私だったら、関数 if (TimeHour(TimeCurrent())) を使います。= 開始時間 && 時分(TimeCurrent())= 開始分 )です。時、分はint型またはuint型の変数に設定する。 Nickolay72 2016.01.12 11:56 #4932 Artyom Trishkin: Open Bar Number 1 がチャンネルの上/下にある場合。 しまった、今見たらチャンネルの下限 付近でトレードしてた、注文をコピーしただけで、下を上に修正してなかった、修正版でやってみる)//-----Ставим ордер на покупку. if(PriceCurrentOpen<PriceLow&&PriceCurrentOpen<PriceCurrentClose&&SignalCurrent<MacdCurrent&&SignalMAPrevious<SignalMAThis) { ticket=OrderSend(NULL,OP_BUY,Lots,Ask,slippage,0,0,"5",magic,0,Blue); if(ticket>0) return; } //-----Ставим ордер на продажу. if(PriceCurrentOpen>PriceLow&&PriceCurrentOpen>PriceCurrentClose&&SignalCurrent>MacdCurrent&&SignalMAPrevious>SignalMAThis) { ticket=OrderSend(NULL,OP_SELL,Lots,Bid,slippage,0,0,"5",magic,0,Red); if(ticket>0) return; Nickolay72 2016.01.12 12:00 #4933 Vitalii Ananev:したがって、4つの注文を開くことになります。EAが正しく注文を開けない場合は、CheckForOpen()関数でポジションを開く 条件を指定し、ロジックを確認してください。また、(CurrTime < EaStartTime || CurrTime >= EaEndTime)であれば、時間条件を確認する。私だったら、関数 if (TimeHour(TimeCurrent())) を使います。= 開始時間 && 時分(TimeCurrent())= 開始分 )です。時、分はint型またはuint型の変数に設定する。3つの注文を出したかったのですが、これは私の意図するところではなく、3つまでで、新しいバーごとに1つの注文を出したかったのです。時間の問題はなく、厳密に指定された期間で動作します。 Artyom Trishkin 2016.01.12 12:48 #4934 Nickolay72:注文は3つまでで、新しいバーに対して1つの注文が欲しかった。 複数のバーが連続して陽性のシグナルを出すことがある。時間の問題はなく、厳密に指定された期間で動作します。 条件:最後のポジションを開いたバーがゼロに等しくなく、オープンポジションの 数が許容される最大値より少ない場合、新しいポジションを開くことが可能です。 Николай Никитюк 2016.01.13 03:24 #4935 2016.01.13_05:14の記事です。カルプトフさん、こんにちは。MQL4で書いた .mq4ファイル、.ex4ファイルを取得しました。しかし、ストラテジーテスターでは動作しない。最終 は、MT4用のEAを書くことでした。MQL5では、.mq5を取得し .ex5ファイルです。そして、.ex5ファイルは、トレードを開いた。第4弾は、以下とは異なります。 第4版は第5版と異なる部分があり、私はまだMQLのプログラマーとして優れているわけではないので、悪い結果が出たわけです。 テスターのログファイルは保存されているのですが、何が悪いのか今ひとつ理解できません。Я 翻訳してみます。とりあえず教えていただきたいのですが プログラムコードに問題があるのか?あなたが答えている間、私は試してみます。 を理解することです。 私は、4つ目のバージョンのエディターで、次のように書くオプションがあることに驚きました。 書こうと思っていたところでした。でも、私は書いていないんです。を添付しています。 テスターのログファイルとスクリーンショットです。05:30 MSC ファイル: 20160112.log 7 kb Alexey Volchanskiy 2016.01.13 04:41 #4936 Николай Никитюк:2016.01.13_05:14am モスクワ時間。カルプトフさん、こんにちは。MQL4で書きました .mq4ファイル、.ex4ファイルを入手しました。しかし、ストラテジーテスターではうまくいきません。 なぜ、コードを画像として貼り付けたのですか?))誰がそれを理解するのか? Vladimir Karputov 2016.01.13 07:39 #4937 Николай Никитюк: 投稿にコードを正しく挿入してください:フォーラムにコードを正しく挿入して ください Aleksey Vyazmikin 2016.01.13 14:16 #4938 エラーの説明はどこで見ることができますか?コンパイラが何を嫌がっているのか、なぜ警告が出るのか理解できません。演算子の優先順位をチェックし、エラーが発生する可能性がある場合は、括弧を使用して優先順位を明確にします。if(Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy) calcBarX++;とこちら泣いても笑っても for(calc_day;calc_day>0; calc_day--) { if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++; else break; } Vladimir Karputov 2016.01.13 14:22 #4939 -Aleks-:エラーの説明はどこで見ることができますか?コンパイラが何を嫌っているのか理解できないのですが、なぜ警告が出るのでしょうか? 実は、コンパイラはエラー文の他に、エラーのあるコード行の番号と行内の位置も教えてくれるのです。 Aleksey Vyazmikin 2016.01.13 14:27 #4940 Karputov Vladimir: 実は、コンパイラはエラー文の他に、エラーが見つかったコード行の番号とその行の中での位置も報告しています。 これはそうです - 最初のケースでは順番に比較記号に - 明らかに "or" の間に括弧を置く必要があり、2番目のケースでは、論理式が 書かれている括弧に悪態をつきます。 1...487488489490491492493494495496497498499500501...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
昨日まで、私のEAは1つずつしか注文を開かず、私が注文を出すまで次の注文は開きません。 さて、前のバーがチャンネルの上(下)で開いたときに私のEAが注文を開くようにするにはどうすればよいでしょうか?
このコード断片を分析すると、このコードによれば、CountTrades() 関数が0を返した場合、条件 if (CountTrades()==0) CheckForOpen() が実行 され、関数CheckForOpen() が呼び出されることになります。次のティックでは、注文がオープンされていれば、CountTrades()関数が1を返し、else条件が成立しているはず です。
CountTrades()<max_tradesと表示された場合、CheckForOpen() 関数が再度実行されます。このコードでは、変数 max_tradesの値が3になっています。したがって、4つの注文を開くことになります。
EAが正しく注文を開けない場合、CheckForOpen()関数でポジションを 開く条件を定義しているロジックを確認してください。また、(CurrTime < EaStartTime || CurrTime >= EaEndTime)であれば、時間条件を確認する。私だったら、関数 if (TimeHour(TimeCurrent())) を使います。= 開始時間 && 時分(TimeCurrent())= 開始分 )です。時、分はint型またはuint型の変数に設定する。
Open Bar Number 1 がチャンネルの上/下にある場合。
したがって、4つの注文を開くことになります。
EAが正しく注文を開けない場合は、CheckForOpen()関数でポジションを開く 条件を指定し、ロジックを確認してください。また、(CurrTime < EaStartTime || CurrTime >= EaEndTime)であれば、時間条件を確認する。私だったら、関数 if (TimeHour(TimeCurrent())) を使います。= 開始時間 && 時分(TimeCurrent())= 開始分 )です。時、分はint型またはuint型の変数に設定する。
3つの注文を出したかったのですが、これは私の意図するところではなく、3つまでで、新しいバーごとに1つの注文を出したかったのです。
時間の問題はなく、厳密に指定された期間で動作します。
注文は3つまでで、新しいバーに対して1つの注文が欲しかった。 複数のバーが連続して陽性のシグナルを出すことがある。
時間の問題はなく、厳密に指定された期間で動作します。
2016.01.13_05:14の記事です。カルプトフさん、こんにちは。MQL4で書いた
.mq4ファイル、.ex4ファイルを取得しました。しかし、ストラテジーテスターでは動作しない。最終
は、MT4用のEAを書くことでした。MQL5では、.mq5を取得し
.ex5ファイルです。そして、.ex5ファイルは、トレードを開いた。第4弾は、以下とは異なります。
第4版は第5版と異なる部分があり、私はまだMQLのプログラマーとして優れているわけではないので、悪い結果が出たわけです。
テスターのログファイルは保存されているのですが、何が悪いのか今ひとつ理解できません。Я
翻訳してみます。とりあえず教えていただきたいのですが
プログラムコードに問題があるのか?あなたが答えている間、私は試してみます。
を理解することです。
私は、4つ目のバージョンのエディターで、次のように書くオプションがあることに驚きました。
書こうと思っていたところでした。でも、私は書いていないんです。を添付しています。
テスターのログファイルとスクリーンショットです。05:30 MSC
2016.01.13_05:14am モスクワ時間。カルプトフさん、こんにちは。MQL4で書きました
.mq4ファイル、.ex4ファイルを入手しました。しかし、ストラテジーテスターではうまくいきません。
エラーの説明はどこで見ることができますか?
コンパイラが何を嫌がっているのか、なぜ警告が出るのか理解できません。
演算子の優先順位をチェックし、エラーが発生する可能性がある場合は、括弧を使用して優先順位を明確にします。
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
calcBarX++;
とこちら
泣いても笑っても
for(calc_day;calc_day>0; calc_day--)
{
if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++;
else break;
}
エラーの説明はどこで見ることができますか?
コンパイラが何を嫌っているのか理解できないのですが、なぜ警告が出るのでしょうか?
実は、コンパイラはエラー文の他に、エラーが見つかったコード行の番号とその行の中での位置も報告しています。