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

 

皆さんこんにちは、取引履歴を 画面に表示する既成のコマンドはないでしょうか?

ヒストリカルからチャートにドラッグするのと同じように



トレードの履歴を調べて、オブジェクトを割り当てることも可能ですが、もっと簡単な方法があると思います。

 
Mickey Moose:

皆さんこんにちは、取引履歴を 画面に表示する既成のコマンドはないでしょうか?

ヒストリーからチャートにドラッグするのと同じです。

同じく、コントロールキーを押した状態です。CtrlかShiftか忘れたが、携帯電話から書いている。
 
Artyom Trishkin:
同じく、コントロールキーを押した状態です。CtrlなのかShiftなのか思い出せない......携帯電話から書いています。



この作品をトレーディング以外のロボットに搭載して、チャートに載せて状況を確認したい。

グラフにして、このシンボルのために年間何枚のクラップスが作られたかを見るには
 
Ihor Herasko:

MQLでこの情報を取得する方法はありません。DateTimePrickerコントロールにアクセスする必要がありますが、これはWinAPIを介して行われます。

ありがとうございます、了解です

誰かの役に立つかもしれない。

#import "user32.dll"
   int      SendMessageA(int hWnd,int Msg,int wParam,int &lParam[]);
#import

#define  DTM_GETSYSTEMTIME 0x1001

int SystemTime[4];

.....

//+------------------------------------------------------------------+
//|          Функция преобразования в формат datetime                |
//+------------------------------------------------------------------+
datetime FormatDateTime(int &DT[]){
   string sMonth,sDay,sHour,sMin,sSec;
      int nYear,nMonth,nDay,nHour,nMin,nSec;   
      
   //---- parse date and time from array
         nYear=DT[0]&0x0000FFFF;
         nMonth=DT[0]>>16;
         nDay=DT[1]>>16;
         nHour=DT[2]&0x0000FFFF;
         nMin=DT[2]>>16;
         nSec=DT[3]&0x0000FFFF;
         
   //---- format date and time items
         sMonth=100+nMonth;
         sMonth=StringSubstr(sMonth,1);
         sDay=100+nDay;
         sDay=StringSubstr(sDay,1);
         sHour=100+nHour;
         sHour=StringSubstr(sHour,1);
         sMin=100+nMin;
         sMin=StringSubstr(sMin,1);
         sSec=100+nSec;
         sSec=StringSubstr(sSec,1);

   //----
         return(StrToTime(StringConcatenate(nYear,".",sMonth,".",sDay," ",sHour,":",sMin,":",sSec)));
  }
  
void OnInit(void){
  if (IsTesting()){
    SendMessageA(0x0000000000010288,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date From: ",TimeToString(FormatDateTime(SystemTime)));
    
    SendMessageA(0x000000000001028E,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date To: ",TimeToString(FormatDateTime(SystemTime)));
  }
  .....
}

void OnTick(void){
  .....
}
//+------------------------------------------------------------------+
 
mrumskiy:

ありがとうございます、了解です

誰かにとっては便利かもしれない。

では、なぜテスト間隔の日付を取得する必要があるのか、どこで便利になるのか、という反問があります。

 
Artyom Trishkin:

iが2の倍数の場合。

これは、iを2で割った余り である

ありがとうございます。19時から11時までのローソク足を計算から除外する方法は?

 
PolarSeaman:

ありがとうございます。19時と11時の間にあるロウソクを計算から除外する方法は?

時間を見て、決められた範囲内でなければスキップするのは簡単です。

理屈は簡単で、午後2時から3時の間は店がランチタイムで閉まっていることを知っているからだ。時計を見て、昼休みなら店に行かない。では、なぜここで混乱するのでしょうか?何が違うの?

 
こんにちは、私は次のような条件を作成したいと思います。
時間帯0-8ステップは5ピップ、それ以外の時間は10ピップに相当します。しかし、前日から開いている注文がある場合、時間帯0-8のステップも10pipsになります。


 
Artyom Trishkin:

時間を見て、設定した範囲内でなければスキップするのも簡単です。

理屈は簡単で、14:00から15:00の間はランチタイムでお店が閉まっていることを知っているからです。時計を見て、昼休みなら店に行かない。では、なぜここで混乱するのでしょうか?何が違うのでしょうか?

要は、EAのように時間間隔を設定すると

if(Hour()>=17&&Hour()<=11)return(0);

ヒストリーから、インターバルにあるローソク足を計算から除外する必要があります。

 
Tigerfreerun:
こんにちは、私は次のような条件を作成したいと思います。
時間帯0-8ステップは5ピップ、それ以外の時間は10ピップに相当します。しかし、前日から開いている注文がある場合、時間帯0-8ステップでも10pipsに相当します。


ということになるのかもしれません。

  if(Hour()>=0&&Hour()<=8&&OrdersTotal()==0)step = 5; else step =10;