[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 391 1...384385386387388389390391392393394395396397398...631 新しいコメント saenko1981 2012.09.21 04:37 #3901 snail09_1: 私なら、クローズするチケットの配列を 作らず、成行注文の列挙ループで、可能な条件をチェックしながら、チケットをクローズ関数の入力に送り、各注文のチェックをします。 コードで示せますか? というか、これってどうやったら実装できるんだろう? [Deleted] 2012.09.21 04:55 #3902 皆さん、こんにちは。 この質問は初心者向けではないのかもしれませんが、他に質問できるスレッドが見つからなかったので、質問させていただきました。 MetaTrader 4から詳細レポートをアンロードして、チャートに残高ではなく資本を表示させるにはどうすればよいですか?MT4とかから都合よくアップロードすれば現実的なのかな?バランスが取れているかどうかは分からないので、ドローダウンの結果だけ知りたいです。 このブローカーをどう使えばいいのか、全くわからない。 [Deleted] 2012.09.21 07:48 #3903 belous: コードで示せるか? というか、どうやって実装するんだ? こんな感じ? int ticket; for(int z=OrdersTotal()-1;z>=0;z--) { if(!OrderSelect(z,SELECT_BY_POS)) { _GetLastError=GetLastError(); Print(" OrderSelect(",z,",SELECT_BY_POS)-Error #",_GetLastError); continue; } if(OrderMagicNumber()==magic && OrderSymbol()==Symbol()) { if((OrderType()==OP_BUY)||(OrderType()==OP_SELL)) { // Проверим условие для закрытия, и если истинно { ticket=OrderTicket(); //Закрываем его } } } } 削除済み 2012.09.21 09:07 #3904 ヘルプをお願いします。 以下はそのコードです。 //-----------------Закрытие по истории в безубыток-------------------- //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- Iteration = 0; // зануляем инерации перед их учетом в цикле по истории Sum_Loss = 0; // суммарный убыток по этим итерациям datetime Time_at_History_Current = 0, Time_at_History_Previos = 0; if(OrdersHistoryTotal() != 0) { for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--) { OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера // для последующего его анализа при подсчете количества итераций { double lastLoss = OrderProfit(); Sum_Loss=Sum_Loss+lastLoss; // считаем общий убыток по закрытым подряд убыточным ордерам Time_at_History_Current = OrderCloseTime(); } //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS)); //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS)); if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными { Time_at_History_Previos = Time_at_History_Current ; Iteration++; //Print("Iteration at History в условии сравнения = ", Iteration); } else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла { if(OrderProfit() >= 0) break; } } } } } if (Sum_Loss < 0.0) { // Имеем убыток по закрытым позам double money = Lots; BuyLots = GetBuyLotsSum(); SellLots = GetSellLotsSum(); if(BuyLots > SellLots)money = BuyLots * 10; if(BuyLots < SellLots)money = SellLots * 10; if (((AccountEquity() + Sum_Loss + (Sum_Loss / money)) >= AccountBalance()) && (((totalSell > 0) && (totalBuy < 1)) || ((totalSell < 1) && (totalBuy > 0)))) { // Достигли безубытка // Здесь какой-то код, который необходимо выполнить при достижении безубытка CloseAllBuy(); CloseAllSell(); Sum_Loss = 0.0; マイナスで取引が成立した時にループを開いて、次の注文がゼロ以上で成立した場合、つまり残高がプラスでもマイナスより少ない場合、マイナスにプラスを足して新しいマイナス値を得るのですが、すでに少なくなっているので、どうしようもないのです。 if(OrderProfit() >= 0 && Sum_Loss < 0.0) double lastLoss_two = OrderProfit(); Sum_Loss=Sum_Loss+lastLoss_two; // считаем общий убыток по закрытым подряд убыточным ордерам Time_at_History_Current = OrderCloseTime(); } もし、シグナルに従って、よりマイナスになった場合は、注文をクローズして、サイクルを最初から開始します。 状況は、このコードが損失で取引を終了するとき、それはマイナス残高を記憶し、それがプラスで取引を終了し、プラスが残高よりも小さいとき、それはSum_Lossをリセットし、私はそれがゼロにならないと、刈り取られる必要があることである。 だから、今はこうなっているんです。 クローズした注文をチェックし、クローズした注文の利益がゼロより小さければ、その利益をSum_Lossに加え、オープンした取引の利益がSum_Lossを超える(超える予定)まで続け、達した時点で取引をクローズし、Sum_Lossをゼロにして再びサイクルを開始します。 必要なんです。 の注文がマイナスで決済されると、そのマイナス分の利益がSum_Lossに加算され、次の取引がプラスの利益で決済されると、Sum_Lossは利益から受け取った分だけ減少し、つまり次の新規注文Sum_Lossはすでに小さい金額になっており、注文利益がSum_Lossより高くなるまで、Sum_Lossはクリアされて新しいサイクルが始まる。 Sum_Loss = 0; 1回目の決済注文:利益(-50)<0 Sum_Loss + 利益 (Sum_Loss + (-50)) Sum_Loss = -50; 2回目の決済注文:利益(+40)>0かつSum_Loss<0 損失額+利益額 (Sum_Loss + 40) Sum_Loss = -10 もしかしたら、Sum_Lossは負の変数として指定されるべきなのかもしれません。多くのバリエーションを試しましたが、まだ正しい結果が得られていません。 村人の稼ぎ方を学ぶ【第2話】! max79 2012.09.21 14:05 #3905 スプレッドを考慮せずにEAをテスト するにはどうすればよいですか?これは可能なのでしょうか? [Deleted] 2012.09.21 14:27 #3906 Max79: スプレッドを考慮せずにEAをテストするにはどうすればよいですか?可能なのでしょうか? ググれば出てきますよ、例えばここ(set spread ? site:mql4. com)https://www.mql5.com/ru/forum/102224/page2 を読んでみてください。 Ruslan 2012.09.21 14:34 #3907 そんなターキーを持っている人はいるのでしょうか? Vladimir M. 2012.09.21 15:27 #3908 よろしくお願いします。 EAで、保留中の注文のモディファイアを入れたのですが、ジャーナルでテストすると、エラー-1が出ます。 例:「関数のパラメータに未変化の値を渡すと、エラー 1(ERR_NO_RSULT)が発生する」。 改造前にチェックを入れたが、どうにもならない。エラーは何ですか?EAはテスト中ですが、値が変わっていない注文をふるい落とすにはどうしたらよいでしょうか。 Alekseu Fedotov 2012.09.21 15:47 #3909 Run: こんな七面鳥、誰が持ってるの? こちらをご覧ください。 http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=45 Paladin80 2012.09.21 15:54 #3910 rosomah: よろしくお願いします。 EAで、保留中の注文のモディファイアを入れたのですが、ジャーナルでテストすると、エラー-1が出ます。 例:「関数のパラメータに未変化の値を渡すと、エラー 1(ERR_NO_RSULT)が発生する」。 改造前にチェックを入れたが、どうにもならない。エラーは何ですか?EAはテスト中ですが、値が変わっていない注文をふるい落とすにはどうしたらよいでしょうか。 値prを印刷し、停止し、OrderModifyに何を送信するかを確認するために取る 1...384385386387388389390391392393394395396397398...631 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私なら、クローズするチケットの配列を 作らず、成行注文の列挙ループで、可能な条件をチェックしながら、チケットをクローズ関数の入力に送り、各注文のチェックをします。
コードで示せますか?
というか、これってどうやったら実装できるんだろう?
皆さん、こんにちは。
この質問は初心者向けではないのかもしれませんが、他に質問できるスレッドが見つからなかったので、質問させていただきました。
MetaTrader 4から詳細レポートをアンロードして、チャートに残高ではなく資本を表示させるにはどうすればよいですか?MT4とかから都合よくアップロードすれば現実的なのかな?バランスが取れているかどうかは分からないので、ドローダウンの結果だけ知りたいです。
このブローカーをどう使えばいいのか、全くわからない。
コードで示せるか?
というか、どうやって実装するんだ?
こんな感じ?
ヘルプをお願いします。
以下はそのコードです。
マイナスで取引が成立した時にループを開いて、次の注文がゼロ以上で成立した場合、つまり残高がプラスでもマイナスより少ない場合、マイナスにプラスを足して新しいマイナス値を得るのですが、すでに少なくなっているので、どうしようもないのです。
もし、シグナルに従って、よりマイナスになった場合は、注文をクローズして、サイクルを最初から開始します。
状況は、このコードが損失で取引を終了するとき、それはマイナス残高を記憶し、それがプラスで取引を終了し、プラスが残高よりも小さいとき、それはSum_Lossをリセットし、私はそれがゼロにならないと、刈り取られる必要があることである。
だから、今はこうなっているんです。
クローズした注文をチェックし、クローズした注文の利益がゼロより小さければ、その利益をSum_Lossに加え、オープンした取引の利益がSum_Lossを超える(超える予定)まで続け、達した時点で取引をクローズし、Sum_Lossをゼロにして再びサイクルを開始します。
必要なんです。
の注文がマイナスで決済されると、そのマイナス分の利益がSum_Lossに加算され、次の取引がプラスの利益で決済されると、Sum_Lossは利益から受け取った分だけ減少し、つまり次の新規注文Sum_Lossはすでに小さい金額になっており、注文利益がSum_Lossより高くなるまで、Sum_Lossはクリアされて新しいサイクルが始まる。
Sum_Loss = 0;
1回目の決済注文:利益(-50)<0
Sum_Loss + 利益 (Sum_Loss + (-50))
Sum_Loss = -50;
2回目の決済注文:利益(+40)>0かつSum_Loss<0
損失額+利益額 (Sum_Loss + 40)
Sum_Loss = -10
もしかしたら、Sum_Lossは負の変数として指定されるべきなのかもしれません。多くのバリエーションを試しましたが、まだ正しい結果が得られていません。スプレッドを考慮せずにEAをテストするにはどうすればよいですか?可能なのでしょうか?
そんなターキーを持っている人はいるのでしょうか?
よろしくお願いします。
EAで、保留中の注文のモディファイアを入れたのですが、ジャーナルでテストすると、エラー-1が出ます。
例:「関数のパラメータに未変化の値を渡すと、エラー 1(ERR_NO_RSULT)が発生する」。
改造前にチェックを入れたが、どうにもならない。エラーは何ですか?EAはテスト中ですが、値が変わっていない注文をふるい落とすにはどうしたらよいでしょうか。
こんな七面鳥、誰が持ってるの?
こちらをご覧ください。
http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=45
よろしくお願いします。
EAで、保留中の注文のモディファイアを入れたのですが、ジャーナルでテストすると、エラー-1が出ます。
例:「関数のパラメータに未変化の値を渡すと、エラー 1(ERR_NO_RSULT)が発生する」。
改造前にチェックを入れたが、どうにもならない。エラーは何ですか?EAはテスト中ですが、値が変わっていない注文をふるい落とすにはどうしたらよいでしょうか。