if (PositionSelect(_Symbol)==1 && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY ){jj=1;} //определяет если позиция BUY if (jj==0 ){ if ( ind2[1]>ind1[1]){ // условие на покупку Print("индикатор=",ind2[1]," ",ind1[1]); mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена ask mrequest.sl = NormalizeDouble(latest_price.ask - sl*_Point,_Digits); // Stop Loss mrequest.tp = NormalizeDouble(0,_Digits); // Take Profit mrequest.symbol = _Symbol; // символ mrequest.volume = lot; // количество лотов для торговли mrequest.magic = magicBUY1; // Magic Number mrequest.type = ORDER_TYPE_BUY; // ордер на покупку mrequest.type_filling = ORDER_FILLING_AON; // тип исполнения ордера - все или ничего mrequest.deviation=10; // проскальзывание от текущей цены //--- отсылаем ордер OrderSend(mrequest,mresult);
この質問でいいのかどうか。
デバッグとテスターの併用は可能ですか?I.e. F5で起動すると、テスターはもちろん起動しない。また、テスターでExprrtを起動すると、ブレークポイントが 無視されます。それとも、私のやり方が悪いのでしょうか?
この質問でいいのかどうか。
デバッグとテスターの併用は可能か?
今のところないですね。
では、体験版ではリアルタイムのみ?面白い場面でのデバッグはどうでしょうか?
最初はデバッガーに興奮していたのですが、プリントアウトのデバッグにスライドしています。それ以外のデバッグ技術は見えない。- イライラする。
例として提供されたExpert AdvisorであるMovingAverageを学習。 すべてが美しい。テスターについて質問です。
このEAでは、ローソク足を最初のティックだけ解析しています。 ある状況下では、処理されずに抜け落ちてしまうことに気づきました。最初のティックから珍しいローソク足が誕生することがわかった。接続の影響なのか、私の不具合なのか、テスターの不具合なのか。
どうやら、ロウソクの誕生時のみ、つまり一度だけ処理するためには、最後に処理したロウソクをスタティック変数に 格納する必要があるようですね。
P/S/ 言語を学び始めたばかりなので、このような退屈な質問をしてしまいました。
こんにちは、チャンピオンシップに間に合うかどうか、EAを書いているところです。簡単なコードを書き、2つのカスタムインジケーターを 使用しましたが、これらのインジケーターの値が0であるため、取引は行われません。
Lunatic:
このEAは、ローソク足の最初の1ティックだけを分析するのですが、処理されずにすり抜ける場面があることに気づきました。最初のティックから珍しいローソク足が誕生することがわかった。接続の影響なのか、私の不具合なのか、テスターの不具合なのか。
どうやら、ローソク足が生まれた時だけ、つまり一度だけ処理するためには、最後に処理したローソク足をスタティック変数に 格納すればいいようです?
新しいバーの出現を追跡するには、バーの時刻を変更し、あらかじめ静的変数に格納しておく方がよいでしょう。
IsNewBarの 記事と、EAの制限とチェックの 記事で例を見ることができます。
新しいバーの出現は、あらかじめ静的変数に保存しておいたバーの時刻を変更することでよりよく追跡できる。
IsNewBarや、Limits and checks in EAsの 記事で例が見られます。
ありがとうございます、スッキリしました。
しかし、ここで分からないのが、EAのデバッグの方法です。試されるのはシステムではなく、プログラムのバグであることは明らかです。例えば、プログラムがある分岐に入るのに失敗する理由がわからないのですが、なぜでしょうか?別のデバッグスタンプを押して、それをジャーナルで探し、別のスタンプを押して、プログラムが動くまで一定時間待って、またジャーナルで探せばいいのでしょうか?
プログラムエラーの検索方法について教えてください。
こんにちは、チャンピオンシップに間に合うかどうか、EAを書いているところです。簡単なコードを書き、2つのカスタムインジケーターを 使用しましたが、これらのインジケーターの値は0であり、取引は実行されません。
あなたのコードをデバッグするために、私はカスタムインジケーターをMAに置き換えました。
また、配列への値のコピーを修正しました。
今は指標となる数値があります。
あなたのコードをデバッグするために、カスタムインディケータを MAに置き換えてみました。
そして、配列への値のコピーを修正しました。
今は指標となる数値があります。
インジケータが原因か? テスターでエラーが発生する
2010.09.01 19:44:36 Core 1 2010.06.01 00:00:01 'trend_v3.mq5' の配列が範囲外 (71,9)
2010.09.01 19:44:36 Core 1 2010.06.01 00:00:01 'trend_v3_5.mq5' で配列が範囲外 (83,9)
m_a_sim さんへ
インデックスの情報をコピーする前に、ハンドルのハンディキャップを確認する方が正しいと思います。また、これらのデータの有無も確認した方が良いのでは・・・。