[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 368 1...361362363364365366367368369370371372373374375...652 新しいコメント 削除済み 2011.11.26 11:56 #3671 こんにちは。 課題があるのですが、一見簡単そうに見えますが、うまくいかないんです。値が常に 一列に並んでいる配列があります(ある場合は昇順、ある場合は降順になります)。若干のレベル(写真では赤色)があります。赤い線のレベルに最も近い2つの 配列値を見つける必要があります。図a)ではインデックス0と1の配列値、図b)ではインデックス2と1の配列値、図c)とf)ではインデックス0と0の配列値、図d)とe)ではインデックス2と2の配列値となる。 この問題を解決する方法を教えてください。よろしくお願いします。 noobys 2011.11.26 11:56 #3672 Roman.: そして、このインジケータから転送された取引条件を使って、Expert Advisorを通じてポジションをオープンするボードで、それはそれです。 ありがとうございます、何とかしています :) Роман 2011.11.26 12:01 #3673 skyjet: ありがとうございます、整理しています :) どういたしまして...。誰もが経験することだ。:-) ivan2k2 2011.11.26 12:07 #3674 drknn: 今日は土曜日、お休みです。EAを起動し、初期化は行われますが、デイ・オフでティックがないため、スタート関数は起動しません(つまり、Trade()は呼ばれません)。正しく動作するかどうかを確認するためには、この関数の呼び出しを初期化ブロックに張り付けるか、テスターでテストする必要があります。 Init()にこの関数を代入し、チェックコードPrint(DayOfWeek())を追加したところ、サーバーから時刻を取得していることが判明し、サーバーの時刻は金曜日になりました...。 交換済み if(DayOfWeek()==0 || DayOfWeek()==6) まで if(TimeDayOfWeek(TimeLocal())==0 || TimeDayOfWeek(TimeLocal())==6) で、意図したとおりに動作しました。 ありがとうございます。 削除済み 2011.11.26 14:33 #3675 同志の皆さん、こんにちは。 予期せぬ問題に直面した。 一昨日、テスターが正常に動作していた。昨日の夕方から、テスターにあるどのバージョンのストラテジーでも、1回取引を開くと、1秒後、または数分/数時間の履歴が残って、テスターが動かなくなります。エラーも何もない。 どなたかお困りの方はいらっしゃいませんか?アドバイスをお願いします Артур 2011.11.26 16:05 #3676 こんにちは。 エラーを見つけるのに協力してください。 以下は、EAから抜粋した問題のある部分の全文である。 extern int MAGIC= 1; int start() { //---- int tt = 0; double SchBuyLots = SchBuyLots_b(MAGIC); double SchSellLots = SchSellLots_b(MAGIC); double SchBuyLots100 = SchBuyLots100_b(); double SchSellLots100 = SchSellLots100_b(); double SchBuyLimitLots = SchBuyLimitLots_b(MAGIC); double SchSellLimitLots = SchSellLimitLots_b(MAGIC); double SchBuyStopLots100 = SchBuyStopLots100_b(); double SchSellStopLots100 = SchSellStopLots100_b(); double dy=0; double dx=SchBuyLots+SchBuyLots100-SchSellLots-SchSellLots100; if (dx!=0) dy=MathAbs(dx); double zx=SchBuyLimitLots-SchSellLimitLots; if (dx>0 && dy+zx!=SchSellStopLots100)tt=1; else tt=2; Alert (dy+zx,"---",SchSellStopLots100,"---",tt); //---- return(0); } //+------------------------------------------------------------------+ // ----------------- SchBuyLots() --------------------------------------------- // Функция возвращает суммарный лот Бай-ордеров для Магика //---------------------------------------------------------------- double SchBuyLots_b(int MAGIC) { double SchBuyLots=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()== MAGIC){ if(OrderType()==OP_BUY) { SchBuyLots=SchBuyLots+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchBuyLots); } // ---------------------------------------------------------------------------- // ----------------- SchSellLots() --------------------------------------------- // Функция возвращает суммарный лот Сейл-ордеров для Магика //----------------------------------------------------------------- double SchSellLots_b(int MAGIC) { double SchSellLots=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()== MAGIC) { if(OrderType()==OP_SELL) { SchSellLots=SchSellLots+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchSellLots); } // ------------------------------------------------------------------------------- // ----------------- SchBuyLots100() --------------------------------------------- // Функция возвращает суммарный лот Бай-ордеров для Магика 100 //-------------------------------------------------------------------------------- double SchBuyLots100_b() { double SchBuyLots100=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()==100) { if(OrderType()==OP_BUY) { SchBuyLots100=SchBuyLots100+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchBuyLots100); } // -------------------------------------------------------------------------------- // ----------------- SchSellLots100() --------------------------------------------- // Функция возвращает суммарный лот Сейл-ордеров для Магика 100 //--------------------------------------------------------------------------------- double SchSellLots100_b() { double SchSellLots100=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()==100) { if(OrderType()==OP_SELL) { SchSellLots100=SchSellLots100+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchSellLots100); } // ---------------------------------------------------------------------------- // ----------------- SchBuyLimitLots() ------------------------------------------ // Функция возвращает суммарный лот BuyLimit-ордеров для Магика //------------------------------------------------------------------------------ double SchBuyLimitLots_b(int MAGIC) { double SchBuyLimitLots=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()== MAGIC){ if(OrderType()==OP_BUYLIMIT) { SchBuyLimitLots=SchBuyLimitLots+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchBuyLimitLots); } // ---------------------------------------------------------------------------- // ----------------- SchSellLimitLots() ---------------------------------------- // Функция возвращает суммарный лот SellLimit-ордеров для Магика //----------------------------------------------------------------------------- double SchSellLimitLots_b(int MAGIC) { double SchSellLimitLots=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()== MAGIC) { if(OrderType()==OP_SELLLIMIT) { SchSellLimitLots=SchSellLimitLots+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchSellLimitLots); } // ------------------------------------------------------------------------------- // ----------------- SchBuyStopLots100() ----------------------------------------- // Функция возвращает суммарный лот BuyStop-ордеров для Магика 100 //-------------------------------------------------------------------------------- double SchBuyStopLots100_b() { double SchBuyStopLots100=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()==100) { if(OrderType()==OP_BUYSTOP) { SchBuyStopLots100=SchBuyStopLots100+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchBuyStopLots100); } // -------------------------------------------------------------------------------- // ----------------- SchSellStopLots100() ----------------------------------------- // Функция возвращает суммарный лот SellStop-ордеров для Магика 100 //--------------------------------------------------------------------------------- double SchSellStopLots100_b() { double SchSellStopLots100=0; int i; string SMB=Symbol(); for (i=OrdersTotal()-1;i>=0;i--) {//Начало цикла if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {} else{//начало работы с выбранным ордером if(OrderSymbol()== SMB && OrderMagicNumber()==100) { if(OrderType()==OP_SELLSTOP) { SchSellStopLots100=SchSellStopLots100+OrderLots(); } } }//конец работы с выбранным ордером }//Конец цикла return(SchSellStopLots100); } // -------------------------------------------------------------------------------- セリフ(ほぼ冒頭)にご注目ください。 if (dx>0 && dy+zx!=SchSellStopLots100)tt=1; else tt=2; なぜか、この式では dy+zxとSchSellStopLots100の値が別々に 等しい場合(allertsで確認)、互いに等しくなく なり、変数ttは値2ではなく1を取ります。 その欠点を見つけるために、あなたに協力をお願いします。 よろしくお願いします。 Всеволод 2011.11.26 16:11 #3677 週末にサーバーからの取引条件が変更になりました...。ブローカー/ネットワークに接続されていない別の端末で、専用のユーティリティを使用して正しいスプレッドを設定してテストする必要があります。EAのテストと その適切な方法に関する記事を検索するのがよいでしょう。 Всеволод 2011.11.26 16:47 #3678 nemo811: (アラーツで確認) NDやmoduloの差分があるデルタより小さいかどうかを確認するのがよいでしょう。 Артур 2011.11.26 17:28 #3679 splxgf: NDや差分モジュールが、あるデルタ値以下であることを確認するのがよいでしょう。この数字と比較すると、dyとzxを足すとなぜか0.3という数字が出る(現在の市場の状況での私の特定のテストでは)のですが、それと等しくはなりません。つまり、dy+zxを足して0.3が得られるのです。dy+zxと0.3を比較すると、両者は等しくない。 dyとzxを返す数値で比較すると、イコールが本来の働きをする。 謎解き。 よろしくお願いします。 Yury Reshetov 2011.11.26 17:46 #3680 ramirez17:同志の皆さん、こんにちは。予期せぬ問題に直面した。 一昨日、テスターが正常に動作していた。昨日の夕方から、テスターにあるどのバージョンのストラテジーでも、1回取引を開くと、1秒後、または数分/数時間の履歴が残って、テスターが動かなくなります。エラーも何もない。どなたかお困りの方はいらっしゃいませんか?アドバイスをお願いします テスターにはマガジンが付いています。すべてはそこに書かれている。テスターのログを遠くから読み取る テレパスはここにはいない。 1...361362363364365366367368369370371372373374375...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
課題があるのですが、一見簡単そうに見えますが、うまくいかないんです。値が常に 一列に並んでいる配列があります(ある場合は昇順、ある場合は降順になります)。若干のレベル(写真では赤色)があります。赤い線のレベルに最も近い2つの 配列値を見つける必要があります。図a)ではインデックス0と1の配列値、図b)ではインデックス2と1の配列値、図c)とf)ではインデックス0と0の配列値、図d)とe)ではインデックス2と2の配列値となる。
この問題を解決する方法を教えてください。よろしくお願いします。
そして、このインジケータから転送された取引条件を使って、Expert Advisorを通じてポジションをオープンするボードで、それはそれです。
ありがとうございます、整理しています :)
どういたしまして...。誰もが経験することだ。:-)
今日は土曜日、お休みです。EAを起動し、初期化は行われますが、デイ・オフでティックがないため、スタート関数は起動しません(つまり、Trade()は呼ばれません)。正しく動作するかどうかを確認するためには、この関数の呼び出しを初期化ブロックに張り付けるか、テスターでテストする必要があります。
Init()にこの関数を代入し、チェックコードPrint(DayOfWeek())を追加したところ、サーバーから時刻を取得していることが判明し、サーバーの時刻は金曜日になりました...。
交換済み
まで
で、意図したとおりに動作しました。
ありがとうございます。
同志の皆さん、こんにちは。
予期せぬ問題に直面した。
一昨日、テスターが正常に動作していた。昨日の夕方から、テスターにあるどのバージョンのストラテジーでも、1回取引を開くと、1秒後、または数分/数時間の履歴が残って、テスターが動かなくなります。エラーも何もない。
どなたかお困りの方はいらっしゃいませんか?アドバイスをお願いします
こんにちは。
エラーを見つけるのに協力してください。
以下は、EAから抜粋した問題のある部分の全文である。
セリフ(ほぼ冒頭)にご注目ください。
なぜか、この式では dy+zxとSchSellStopLots100の値が別々に 等しい場合(allertsで確認)、互いに等しくなく なり、変数ttは値2ではなく1を取ります。
その欠点を見つけるために、あなたに協力をお願いします。
よろしくお願いします。
(アラーツで確認)
NDや差分モジュールが、あるデルタ値以下であることを確認するのがよいでしょう。
この数字と比較すると、dyとzxを足すとなぜか0.3という数字が出る(現在の市場の状況での私の特定のテストでは)のですが、それと等しくはなりません。つまり、dy+zxを足して0.3が得られるのです。dy+zxと0.3を比較すると、両者は等しくない。
dyとzxを返す数値で比較すると、イコールが本来の働きをする。
謎解き。
よろしくお願いします。
同志の皆さん、こんにちは。
予期せぬ問題に直面した。
一昨日、テスターが正常に動作していた。昨日の夕方から、テスターにあるどのバージョンのストラテジーでも、1回取引を開くと、1秒後、または数分/数時間の履歴が残って、テスターが動かなくなります。エラーも何もない。
どなたかお困りの方はいらっしゃいませんか?アドバイスをお願いします