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

 
Maksim Kalachev #:

読みました、インジケーターだけ設定されています。しかし、デモをロードすると、EAに表示されます。

同じ質問を異なるフォーラムのスレッドに投稿しないでください。

そこでお答えしました。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

アルチョム・トリシキン, 2022.04.05 15:13

古いハンドラを使って書かれていますね。

OnCalculate()を使用する必要があります。


 
Artyom Trishkin #:

同じ質問を異なるフォーラムのスレッドに投稿しないでください。

そこでお答えしました。


すでに読んでいます。ありがとうございました。

 
相手とのやりとりを削除することはできますか? ユーザーとのチャットを 終了したい
 
makssub #:

こんにちは。

コードのヘルプ、もしかしたら例があるかもしれません。
タスク

異なるロットで、異なる方向に、いくつかのオープンオーダーがあります。一人は利益で埋まっている、仮に20人とする。しかし、マイナスの利益でオープンオーダーがあり、0.05ロットで-55とします。マイナス注文の一部をプラスで決済した注文の利益分だけ決済して、ドローダウンを減少させたい。

while演算子を使って書いてみたのですが、うまくいきませんでした。

よろしくお願いします。

これが同じ楽器なのか、違うポジションなのか書いてないですよね?
 

MT5のコードは動作するが、MT4は動作しないのはなぜですか?ビルド1Z5Z

パターンを保存するが、パターンは適用しない

//+------------------------------------------------------------------+
//|                                              File Read Write.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string SYMBOL;
string ccname;
void OnStart()
  {

   SYMBOL = _Symbol;
   ccname = SYMBOL;
   SaveTemplate();
 
 DownloadTemplate();
     
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SaveTemplate(void)
  {
   if(ChartSaveTemplate(0, ccname))
      Print("Template successfully saved!  " + SYMBOL);
   else
      Print("Template save Failed!  " + SYMBOL);
   return;
  }
//+------------------------------------------------------------------+
void DownloadTemplate(void)
  {

   if(ChartApplyTemplate(0,ccname))
      return;
   else
      Print("Template download Failed!  " + SYMBOL);
  }

 
新しいローソク 足が始まった時だけプログラムが動き、コードを実行した後は、次のローソク足が始まるまでじっと待つという方法を教えていただけないでしょうか?
 
Ivan Butko 新しいローソク 足が始まった時だけ、次のローソク足が始まるのを潜んで待つコードを実行した後、プログラムが動作するようにする方法を教えてくださいませんか?


初歩的なことなんですけどね。

 
Pavel Malyshko #:


は初歩的なことです。

解らないんです。ダニが入り、チェックが通る。次のダニが来たら、またチェックする。同タイマーは開口部に入らない。

唯一考えられるのは、オープニングの時間を記憶し、それにキャンドルの時間を加え、新しい値と現在時刻を照合することです

 
Ivan Butko #:

理解できない。ダニが来たら、チェックする。次のダニが来ると、またチェックされる。同じタイマーが開口部に収まらない。

私は、オープニングの時間を覚えて、それにキャンドルタイムを追加し、新しい値と現在の時刻をチェックすることしかできません

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム。

MQL4、MQL5の初心者からの質問、アルゴリズムやコードのヘルプ、ディスカッションなど何でもOK

ヴァレリー・ヤストレムスキー, 2022.03.30 09:37

 
static datetime OldTime=0;
if(iTime(NULL,0,0)!=OldTime)
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol()); OldTime=iTime(NULL,0,0);
      }

アルゴリズムを知らない場合、価格が終値に達した時点でアラートが表示されます。新しいバーが現れると、iTime(NULL,0,0)が変更され、等式が一度もない場合は、等式とifが偽と なる。

このようにすることもできます。

static bool FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }

あるいは、任意の時間枠で新しいバーを取得することもできます。

bool FlagNewBarF(int prd, datetime &ArgBarTime,bool &FlagNbar)
  {
   FlagNbar=false;
   if(ArgBarTime!=iTime(NULL,prd,0))
     {
      ArgBarTime=iTime(NULL,prd,0);
      FlagNbar=true;
     }

   return(FlagNbar);
  }

呼び出しは次のようになります。

 if(FlagNewBarF(1, BarTime1,FlagNewBar1))
     {
      Alert("FlagNbar1 ",FlagNewBar1,"BarTime1 ",TimeToStr(BarTime1,TIME_DATE|TIME_SECONDS));
      
     }

   if(FlagNewBarF(5, BarTime5,FlagNewBar5))
     {
      Alert("FlagNbar5 ",FlagNewBar5,"BarTime5 ",TimeToStr(BarTime5,TIME_DATE|TIME_SECONDS));
     
     }

 
Valeriy Yastremskiy #:
これが同じ楽器なのか、違うポジションなのか書いてないですよね?

すべて同じ通貨ペア、例えばEurUsdの中にあるとします。どちらもBuyでオープンです。

理由: