MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1540 1...153315341535153615371538153915401541154215431544154515461547...1953 新しいコメント Mikhail Tkachev 2021.07.15 13:55 #15391 地域の皆様のお力をお借りしたいのですが...。 MT5 複数のペアで同時にパラメータをオーバーシュートして最適化を実行できない。 テスターの「シンボル」で「マーケットウォッチからすべてのシンボル」を選択すると、「パラメータ」タブで入力パラメータのオーバーシュートを設定する機能が無効になり、チェックボックスがチェックされず、値が入力されないだけになってしまいます。どうしたらいいのでしょうか? Mikhail Mishanin 2021.07.15 14:39 #15392 MikeZv: 地域の皆様のお力をお借りしたいのですが...。MT5 複数ペアで同時にパラメータをオーバーシュートして最適化を行うことができませんでした。テスターの「シンボル」欄で「マーケットウォッチから全てのシンボル」オプションを選択すると、「パラメータ」タブで入力パラメータのオーバーシュートを設定する機能が無効になり、チェックボックスがチェックされず、値が入力されないだけになってしまうのです。どうしたらいいのでしょうか? は、最適化されたものではなく、同じパラメータでテスト(検証)された取引です。 Андрей 2021.07.17 15:26 #15393 皆さん、こんにちは。 mql5で、チャート上にボタン、2つの価格パラメータ、タイムレンジがあるようなインジケータを書く のを手伝ってください。 このデータを入力してボタンを押すと、指定した時間帯の上値と下値を示す矩形がチャート上に描かれます。 законопослушный гражданин 2021.07.17 17:28 #15394 マーティンとフクロウをMAで繋ごうとしているところです。 が、うまくいかない...。 なお、コードはこのサイトで公開されています。 使っているふりをするわけではありません。 //+-----------------------------------------------------------------------------------------------+ //| Simple Moving Average.mq4 | //| Copyright 2016, Andrey Minaev | //| https://www.mql5.com/ru/users/id.scorpion | //+-----------------------------------------------------------------------------------------------+ #property copyright "Copyright 2016, Andrey Minaev" #property link "https://www.mql5.com/ru/users/id.scorpion" #property version "1.00" #property strict // Параметры советника extern string sParametersEA = ""; // Параметры советника extern double dLots = 0.01; // Количество лотов extern int iStopLoss = 30; // Уровень убытка (в пунктах) extern int iTakeProfit = 30; // Уровень прибыли (в пунктах) extern int iSlippage = 3; // Проскальзование (в пунктах) extern int iMagic = 1; // Индентификатор советника extern double K_Martin = 2.0; // мартин extern int DigitsLot = 2; // для мартина extern int OrdersClose = 5; // мартин сделки // Параметры индикатора extern string sParametersMA = ""; // Параметры индикатора extern int iPeriodMA = 14; // Период усреднения // Глобальные переменные double dMA; //+-----------------------------------------------------------------------------------------------+ int OnInit() { // Если брокер использует 3 или 5 знаков после запятой, то умножаем на 10 if(Digits == 3 || Digits == 5) { iStopLoss *= 10; iTakeProfit *= 10; iSlippage *= 10; } return(INIT_SUCCEEDED); } //+-----------------------------------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+-----------------------------------------------------------------------------------------------+ void OnTick() { // Получим значение индикатора dMA = iMA(Symbol(), 0, iPeriodMA, 0, MODE_SMA, PRICE_CLOSE, 0); // Если нет открытых ордеров, то входим в условие if(bCheckOrders() == true) { // Если появился сигнал на покупку, то откроем ордер на покупку if(bSignalBuy() == true) vOrderOpenBuy(); // Если появился сигнал на продажу, то откроем ордер на продажу if(bSignalSell() == true) vOrderOpenSell(); } } //+-----------------------------------------------------------------------------------------------+ //| Функция проверки открытых оредров | //+-----------------------------------------------------------------------------------------------+ bool bCheckOrders() { // Переберем в цикле ордера, для проверки открытых ордеров данным советником for(int i = 0; i <= OrdersTotal(); i++) if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMagic) return(false); return(true); } //+-----------------------------------------------------------------------------------------------+ //| Функция поиска сигнала на покупку | //+-----------------------------------------------------------------------------------------------+ bool bSignalBuy() { if(dMA > Open[1] && dMA < Close[1]) return(true); return(false); } //+-----------------------------------------------------------------------------------------------+ //| Функция поиска сигнала на продажу | //+-----------------------------------------------------------------------------------------------+ bool bSignalSell() { if(dMA < Open[1] && dMA > Close[1]) return(true); return(false); } //+-----------------------------------------------------------------------------------------------+ //| Функция открытия ордера на покупку | //+-----------------------------------------------------------------------------------------------+ void vOrderOpenBuy() { int iOTi = 0; // Тикет ордера iOTi = OrderSend(Symbol(), OP_BUY, dLots, Ask, iSlippage, 0, 0, "", iMagic, 0, clrNONE); // Проверим открылся ли ордер if(iOTi > 0) // Есди да, то выставим уровни убытка и прибыли vOrderModify(iOTi); else // Если нет, то получим ошибку vError(GetLastError()); } //+-----------------------------------------------------------------------------------------------+ //| Функция открытия ордера на продажу | //+-----------------------------------------------------------------------------------------------+ void vOrderOpenSell() { int iOTi = 0; // Тикет ордера iOTi = OrderSend(Symbol(), OP_SELL, dLots, Bid, iSlippage, 0, 0, "", iMagic, 0, clrNONE); // Проверим открылся ли ордер if(iOTi > 0) // Есди да, то выставим уровни убытка и прибыли vOrderModify(iOTi); else // Если нет, то получим ошибку vError(GetLastError()); } //+-----------------------------------------------------------------------------------------------+ //| Функция модификации ордера | //+-----------------------------------------------------------------------------------------------+ void vOrderModify(int iOTi) { int iOTy = -1; // Тип ордера double dOOP = 0; // Цена открытия ордера double dOSL = 0; // Стоп Лосс int iMag = 0; // Идентификатор советника double dSL = 0; // Уровень убытка double dTP = 0; // Уровень прибыли // double OL= dLots; // для мартина // Выберем по тикету открытый ордер, получим некоторые значения if(OrderSelect(iOTi, SELECT_BY_TICKET, MODE_TRADES)) { iOTy = OrderType(); dOOP = OrderOpenPrice(); dOSL = OrderStopLoss(); iMag = OrderMagicNumber(); } // Если ордер открыл данный советник, то входим в условие if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMag) { // Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер if(dOSL == 0) { if(iOTy == OP_BUY) { dSL = NormalizeDouble(dOOP - iStopLoss * Point, Digits); dTP = NormalizeDouble(dOOP + iTakeProfit * Point, Digits); bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE); } if(iOTy == OP_SELL) { dSL = NormalizeDouble(dOOP + iStopLoss * Point, Digits); dTP = NormalizeDouble(dOOP - iTakeProfit * Point, Digits); bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE); } } } } //+-----------------------------------------------------------------------------------------------+ //| Функция обработки ошибок | //+-----------------------------------------------------------------------------------------------+ void vError(int iErr) { switch(iErr) { case 129: // Неправильная цена case 135: // Цена изменилась case 136: // Нет цен case 138: // Новые цены Sleep(1000); RefreshRates(); break; case 137: // Брокер занят case 146: // Подсистема торговли занята Sleep(3000); RefreshRates(); break; } } //+-----------------------------------------------------------------------------------------------+ double LOT() { int n=0; double OL=dLots; for(int j = OrdersHistoryTotal()-1; j >= 0; j--) { if(OrderSelect(j, SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMagic) { if(OrderProfit()<0) { if(n==0) OL=NormalizeDouble(OrderLots()*K_Martin,DigitsLot); n++; if(n>=OrdersClose) { Comment("1"); return(dLots); } } else { if(n==0) { Comment("2"); return(dLots); } else { Comment("3"); return(OL); } } } } } return(OL); } //+------------------------------------------------------------------+ Tretyakov Rostyslav 2021.07.17 18:05 #15395 законопослушный гражданин:マーティンとフクロウをMAで繋ごうとしているところです。が、うまくいかない...。もちろん、私が所有しているわけではありません。どこで間違ったのか、教えてほしい。 一見すると if(OrderSelect(j, SELECT_BY_POS,MODE_HISTORY)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMagic) { if(OrderProfit()<0) 負け惜しみを言っているのかまず最後に閉じたものを探して、利益を見て、マイナスなら「OrderLots()*K_Martin」でいいと思います。 Tretyakov Rostyslav 2021.07.17 18:08 #15396 законопослушный гражданин:が、何かうまくいかない...。 非常に有益な問題の説明 законопослушный гражданин 2021.07.19 09:59 #15397 こんにちは。 MT4ターミナルのストラテジーテスターで、2,3...を実行する方法をどなたかアドバイスしていただけませんか?テスト用のEA? Tretyakov Rostyslav 2021.07.19 10:01 #15398 законопослушный гражданин:こんにちは。MT4ターミナルのストラテジーテスターで、2,3...を実行する方法をどなたかアドバイスしていただけませんか?...テストする? くっつける 削除済み 2021.07.19 10:01 #15399 законопослушный гражданин:こんにちは。MT4ターミナルのストラテジーテスターで、2,3...を実行する方法をどなたかアドバイスしていただけませんか?テスト用のEA? にっちもさっちもいかなくなる \\\\\\\\\\\\\\\\\\\\\\\\\\\ 多通貨のExpert Advisorを作成することができますが、それぞれの通貨に対して別の関数 законопослушный гражданин 2021.07.19 11:10 #15400 ありがとうございます!それはアイデアですね。 1...153315341535153615371538153915401541154215431544154515461547...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MT5
複数のペアで同時にパラメータをオーバーシュートして最適化を実行できない。
テスターの「シンボル」で「マーケットウォッチからすべてのシンボル」を選択すると、「パラメータ」タブで入力パラメータのオーバーシュートを設定する機能が無効になり、チェックボックスがチェックされず、値が入力されないだけになってしまいます。どうしたらいいのでしょうか?
地域の皆様のお力をお借りしたいのですが...。MT5 複数ペアで同時にパラメータをオーバーシュートして最適化を行うことができませんでした。テスターの「シンボル」欄で「マーケットウォッチから全てのシンボル」オプションを選択すると、「パラメータ」タブで入力パラメータのオーバーシュートを設定する機能が無効になり、チェックボックスがチェックされず、値が入力されないだけになってしまうのです。どうしたらいいのでしょうか?
は、最適化されたものではなく、同じパラメータでテスト(検証)された取引です。
皆さん、こんにちは。
mql5で、チャート上にボタン、2つの価格パラメータ、タイムレンジがあるようなインジケータを書く のを手伝ってください。
このデータを入力してボタンを押すと、指定した時間帯の上値と下値を示す矩形がチャート上に描かれます。
マーティンとフクロウをMAで繋ごうとしているところです。
が、うまくいかない...。
なお、コードはこのサイトで公開されています。
使っているふりをするわけではありません。
マーティンとフクロウをMAで繋ごうとしているところです。
が、うまくいかない...。
もちろん、私が所有しているわけではありません。
どこで間違ったのか、教えてほしい。
一見すると
負け惜しみを言っているのかまず最後に閉じたものを探して、利益を見て、マイナスなら「OrderLots()*K_Martin」でいいと思います。
が、何かうまくいかない...。
非常に有益な問題の説明
こんにちは。
MT4ターミナルのストラテジーテスターで、2,3...を実行する方法をどなたかアドバイスしていただけませんか?テスト用のEA?
こんにちは。
MT4ターミナルのストラテジーテスターで、2,3...を実行する方法をどなたかアドバイスしていただけませんか?...テストする?
くっつける
こんにちは。
MT4ターミナルのストラテジーテスターで、2,3...を実行する方法をどなたかアドバイスしていただけませんか?テスト用のEA?
にっちもさっちもいかなくなる
\\\\\\\\\\\\\\\\\\\\\\\\\\\
多通貨のExpert Advisorを作成することができますが、それぞれの通貨に対して別の関数
ありがとうございます!それはアイデアですね。