[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 207

 
DemanRap: では、ある点から次の点へ向かう光線は、グラフの右側にしか続かないのですが、どうすれば左側に続くようになるのでしょうか?
左側にレイを描けないのか、レイではなく 直線が いいのか?
 
例えば、最初に作った2つのフラクタルだけでなく、他のフラクタルにどの程度近いかを確認したいのです。
 
そうです。だから、まっすぐな線を出すことが目標なんです。
 
DemanRap: そうです。だから、まっすぐな線を出すことが目標なんです。

datetime time1 = …;
double price1 = …;

datetime time2 = …;
double price2 = …;

datetime timeDifference =  time2 – time1;  // добавить
double priceDifference = price2 – price1;  // добавить

ObjectCreate("trend_line1", OBJ_TREND, 0, time1, price1, time2, price2);
ObjectCreate("trend_line2", OBJ_TREND, 0, time1, price1, time1 - timeDifference, price1 - priceDifference); // добавить

直線を得るには、ハイライトされた線を追加してみてください。

 
ただ、時間1と価格1、時間2と価格2を入れ替えただけなんですけどね。)
 
Aleksander:

はどうなんだろう?- 端末レベルでのグローバル化?

変数ファイルに時間を保存している :-) アクセスした日付、名前、double 型の値


GV変数に関する質問は以下の通りです...。S.K.さんのMQL4の本では、「GlobalVariables」の章の「Properties of GV-Variables」の項に、こう書かれています。"GV変数はdouble型のみ "です。以下、「Function GlobalVariableDel()」の項では、エキスパートglobalvar.mq4の例として、以下の内容を記載しています。

//--------------------------------------------------------------------
// globalvar.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int    Experts;                                 // Колич. экспертов
double Depo=10000.0,                            // Заданный депозит
       Persent=30,                              // Заданный процент     
       Money;                                   // Искомые средства
string Quantity="GV_Quantity";                  // Имя GV-переменной
//--------------------------------------------------------------------
int init()                                      // Спец. функция init
  {
   Experts=GlobalVariableGet(Quantity);         // Получим тек. знач.
   Experts=Experts+1;                           // Колич. экспертов
   GlobalVariableSet(Quantity, Experts);        // Новое значение
   Money=Depo*Persent/100/Experts;              // Средства для эксп.
   Alert("Для эксперта в окне ", Symbol()," выделено ",Money);
   return;                                      // Выход из init()
  }
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   int New_Experts= GlobalVariableGet(Quantity);// Новое колич. эксп.
   if (Experts!=New_Experts)                    // Если изменилось
     {
      Experts=New_Experts;                      // Теперь текущ. такое
      Money=Depo*Persent/100/Experts;           // Новое знач. средств 
      Alert("Новое значение для эксперта ",Symbol(),": ",Money);
     }
   /*
   ...
   Здесь долен быть указан основной код эксперта,
   в котором используется значение переменной Money
   ...
   */
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------
int deinit()                                    // Спец. ф-ия deinit
  {
   if (Experts ==1)                             // Если эксперт один..
      GlobalVariableDel(Quantity);              //..удаляем GV-перемен
   else                                         // А иначе..
      GlobalVariableSet(Quantity, Experts-1);   //..уменьшаем на 1
   Alert("Эксперт выгружен из окна ",Symbol()); // Сообщ. о выгрузке
   return;                                      // Выход из deinit()
  }
//--------------------------------------------------------------------

質問:この例では、GV 変数 Expert と New_Expert は、先に述べたように double 型であるべきなのに、なぜ int 型なのでしょうか?

 

こんにちは、EAの何が問題なのか、教えてください。

//+------------------------------------------------------------------+
//|                                                           iB.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

int MagicNumber = 1981;
//-----------------------------------------
extern double  Percent        = 0.8;
extern double  Lots           = 0.1;

bool Accept()
  {
   bool TradeOpen;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) TradeOpen=false;
            else TradeOpen=True;
         if (OrderType() == OP_BUY)
            {if (OrderStopLoss() < (Low[1] * Point)) 
                  OrderModify(OrderTicket(),OrderOpenPrice(),(Low[1] * Point),0,0,Green);}
         if (OrderType() == OP_SELL) 
            {if (OrderStopLoss() > (High[1] * Point)) 
                  OrderModify(OrderTicket(),OrderOpenPrice(),(High[1] * Point),0,0,Red);}
        }
     }

   return(TradeOpen);
  }
//-------------------------------------------------------------------+
int start()
  {
//----
   if (Accept())
   {
      if(High[1]<High[2] && Low[1]>Low[2])   
         if ((High[1]-Low[1])/(High[2]-Low[2])<Percent)
       {
         OrderSend(Symbol(), OP_BUYSTOP, Lots, High[1], 3, Low[2], 0, "iB", MagicNumber, 0, Green);
         OrderSend(Symbol(), OP_SELLSTOP, Lots, Low[1], 3, High[2], 0, "iB", MagicNumber, 0, Red);
       }
   }
   return(0);
  }
//+------------------------------------------------------------------+
問題なくコンパイルでき、エラーも出ないが、トレードができない。別のコードブロックをコメントアウトしてみましたが、犯人は見つかりませんでした。ロジックに問題は感じない。
 
以前のデモ口座のパスワードを忘れてしまいました。どこにあるのですか?
 
MikeM:
以前のデモ口座のパスワードを忘れてしまいました。どこにあるのですか?


自分で保存の手続きをしなかったのでは、どこにもないじゃないか--ある証券会社のサポートチームに確認したところ、そう言われました。

アカウントを開設すると、パスワードを含むすべてのパラメータが送られてくるので、メールをチェックする必要があります...。

 
7777877:

こんにちは。つまり、GV変数を 次のように定義することができます(多少無理がありますが)。GV変数は,いわば「箱」であり,その中に任意の型の変数を格納することができます(文字列を 除く,というのはGV 変数はdouble 型のみであり,型変換ルールは型の縮小を許さない,すなわちstringを adoubleに できないからです).そして、GV- 変数に挿入するこの変数は、「このボックスの形をとる」(つまり、ソース型からdouble 型にキャストされる)...。とにかく、こんなのはどうでしょう。

回答 よろしくお願いします。
その通りだ。さらに、ボックスから値を取り出すとdouble型に なるが、その結果をint型の変数に書き込む命令を出すと、コンパイラはその値を新しいボックスに入れるために必要なすべてのステップを自動的に行う。