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

 
Tretyakov Rostyslav #:

a1)

а2)

б)

と他の点については?

 
Порт-моне тв #:

と他の点については?

問題が発生したら対処する...。

まずテーブルを作り、どこに何を置くかを定義し、関数を書きます

 
Mihail Matkovskij #:

Color関数はdoubleではなくcolorを返すべき。

サイトエンジンが追加したリンクも勉強しておくとよいでしょう。

ありがとうございます。読ませてもらう

 
Tretyakov Rostyslav #:

問題が発生したときに対処する...

まずテーブルを作り、どこに何を置くかを定義し、関数を書きます

基本的にはできます。一番難しいのは、価格をファイルに書き出すことと、時間を計算することです。

 
Порт-моне тв #:

原理的にはできるのですが、一番難しいのは、価格をファイルに書き込んで時間を計算 することです

なぜファイルに書き込むのか、こうすればいいのか。


これも難しい ことではなく、数え始めた瞬間に

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

問題が発生したときに対処する...

まずテーブルを作り、どこに何を置くかを定義し、関数を記述します

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

価格がこの変数に到達したときに注文が開かれることを期待して、変数を通してボタンを押すことで価格を固定しようとしましたが、奇跡は起こりませんでした。助けてください。

この関数は理論的には正しいのですが、もし私が

if(Ask == pricefix)
を記憶させた後、すぐに注文を出すのですが、4ポイント低くして欲しいのです。
 
Порт-моне тв #:

なんとなく変数で価格固定をして、価格がその変数と等しくなったときに注文が開くことを期待していたのですが、奇跡は起こりませんでした。助けてください。

理論的には正しい関数なのですが、もし私が

注文はすぐに開くが、記憶した後4ピップス低くなる必要がある。




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

こんにちは。

質問があります。

最大ドローダウンを記憶する方法はありますか?

すなわち、今日のドローダウンが16%で、20日前は5%だったので、最大ドローダウンは16%で、明日が24%なら最大ドローダウンは24%ということです。

あるいは覚えにくい。

 
Alexander Avksentyev #:

こんにちは。

質問があります。

最大ドローダウンを記憶する方法はありますか?

すなわち、今日のドローダウンが16%で、20日前は5%だったので、最大ドローダウンは16%で、明日が24%なら最大ドローダウンは24%ということです。

あるいは複雑である。

CodeBaseには、取引履歴からBalance、Equty履歴を表示するインジケータがあります。そのようなツールは1つだけではありません。

通常のインジケーターのようにデータを取って計算する

 
Maxim Kuznetsov #:

CodeBaseには、取引履歴からBalance、Equty履歴を表示するインジケータがあります。そして、そのようなツールは1つだけではありません。

データを取り、標準的な指標と同じように計算する

もちろん、インジケーターに出力して比較することはできます。

ありがとうございます!!!