MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1339

 
Iurii Tokman:

code needs to be inserted Alt+S
and where is the function ?
how did you compile it ? no errors ?

彼のコードは保留中の注文で動作し、関数はポジションで動作します - 少し調整が必要です。

 
Vitaly Muzichenko:

彼のコードは未決済注文で動作し、関数はポジションで動作します。

その通り、指値注文のsellstopとbuystopしか扱えません。何を修正する必要があるのか?

 
sibiriyak73:

その通り、sellstopとbuystopの指値注文のみ作業中です。修正すべき点は?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг торгов сегодня.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isTradeToDay(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return(True);
            }
          }
        }
      }
    }
  }
  k=OrdersTotal();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()<=6) { 
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
 
Vitaly Muzichenko:

この機能はバイサイド用ですか、それともバイ、セル両方用ですか?

6つの注文 タイプが黄色でハイライトされていますが、このままでよいのでしょうか?

エラーなくコンパイルできたが、注文が開けない

 
sibiriyak73:

この機能はバイサイド用ですか、それともバイ、セル両方用ですか?

6つの注文 タイプが黄色でハイライトされていますが、このままでよいのでしょうか?

コンパイルは正常に行われるが、注文を開くことができない

これは全種類に対応しています。 正しく使用すればうまくいくはずです


P.S. なぜうまくいかないのか、何がそれを妨げているのか、論理的に分析してみてください。

 

また、機能は一度挿入した方が良いだろう、どうせならどんなタイプでも良いし、今までのタイプでも良いだろう

if(Hour()==Nac && !isTradeToDay(Symbol()))
 {
   if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1))
   {
     int ticket1=OrderSend(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed); //Здесь открываем
   }

   if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1))
   {
     int ticket=OrderSend(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,clrBlueViolet); //Здесь открываем
   }
 }
 
皆さん、ハッピーニューイヤーブルズ強気な成長をみんなに!(笑)

前日(または1時間)の最安値と最高値のポイント値を計算する方法を教えてください。
 
Порт-моне тв:
皆さん、ハッピーニューイヤーブルズ強気な成長をみんなに!(笑)

前日(または1時間)の最安値と最高値のポイント値を計算する方法を教えてください。
( High[1] - Low[1] ) / Point()
 
皆さん、こんにちは。

このコードの意味、より正確には原理的にどうなのか、教えていただけませんか?この場合、マクロ置換が使用され、それが注文を開く主な条件となります。PS.グローバル 変数はどこにも変更されません。

#define  MARKET_WATCH          (0)

bool  Gl_Var_MarketWatch    =  MARKET_WATCH;  // глобальная переменная

if(Gl_Var_MarketWatch) ticket=OrderSend(symbol_name,op,ll,pp,MaxSlippage,0,0,co,mn,0,clOpen);
      else ticket=OrderSend(symbol_name,op,ll,pp,MaxSlippage,sl,tp,co,mn,0,clOpen);
Макроподстановка (#define) - Препроцессор - Основы языка - Справочник MQL4
Макроподстановка (#define) - Препроцессор - Основы языка - Справочник MQL4
  • docs.mql4.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression может...
 
Tom Seljakin:
皆さん、こんにちは。このコードの意味や、より正確には原理的にどのように動作するのかを教えてください。この場合、マクロ置換が使用され、それが注文を開く主な条件となります。PS.

グローバル 変数はどこにも変更されません。 。

かもね

MARKET_WATCH,                               // окна "Обзор рынка"