どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 118

 
drems:
注文時にデフォルトのコメントを設定する方法があれば教えてください。

どのような「注文」なのでしょうか?何のために?どこに、なぜコメントが必要なのでしょうか?
 
hoz:

単純な点では何かある、頭が痛い。注文を検索する機能があります。

t - すべてのオーダーのカウンタ.

p - 保留注文のカウンタです。

私は最初からそう呼んでいます。

実際に開いてみると、注文がないときでもこのように表示されます(注文がないときでも、あるかのように印刷される...)。

なぜ、そんなことが可能なのか?


ほらね...。
if (OrderType() > 1)
      {
          p++;
      }
      t++;
Что у нас тут? Если тип ордера больше OP_SELL, то увеличиваем p

注文の種類も5つ以上になる可能性があると考えたことはありますか?具体的には6つ。これは、取引によらない預金の変更です。

 
artmedia70:
ほらね...。

注文の種類も5つ以上になる可能性があると考えたことはありますか?具体的には6つ。これは、取引によらない預金の変更です。



いや、それは初めて聞きました。どこにそんなことが書いてあるんだ?
 
FAQ:
預金=タイプ6

うーん、オーダータイプ=入金!?それは何ですか?
 
artmedia70:
ほらね...。

注文の種類も5つ以上になる可能性があると考えたことはありますか?具体的には6つ。これは、取引によらない預金の変更です。



そしてなぜ6なのかというと、Expert Advisorでは注文の サイズや数を独立して設定することができるからです。
 
hoz:

うーん、オーダータイプ=入金!?これは何でしょう?

すべての出金と入金はこの番号の下にある
 
Profitov:

また、なぜ6なのかというと、注文のサイズや数をEAに書き込むことができるからです。 。

何の話ですか?注文 数の話ではなく、注文の種類の話です。つまり、タイプ6の注文は、預託金の非取引の修正である。
 
hoz:

いや、それは初めて聞きました。どこにそんなことが書いてあるんだ?

これは文書化されていないデータです。
 
FAQ:

すべての出金と入金は、この番号の下で行われます。


そして、この数字が注文統計の収集にどのように影響するのでしょうか?

artmedia70 です。

文書化されていないデータです。

すごいですねぇ。一番面白いのは、奇しくもそれを知っている人がいることです。誰がどう考えても、そうだろう。

artmedia70 です。

何の話ですか?注文数ではなく、注文の種類が重要なのです。つまり、タイプ6の注文は、非取引の預託金変更である。

デモでフクロウがテストされた場合、この順番はどう説明されるのでしょうか?つまり、デモで最初に渡された残高が、その......求められるONEになるのでしょうか?そして、実際のところ......これは引き出し、預けたものですよね?

 
Sepulca:

ターミナルが別のEAの最適化で忙しいので、私自身はテストしていませんが、これでうまくいくはずです。

こんにちは。

チュートリアルのテンプレートにあなたのコードを貼り付けてみました。ポジションを1つだけ開かなければならないのですが、テンプレートにはポジションが1つしかありません。

チケット変数は、テンプレートがすでに持っているため別の名前を持ち、それを静的にしたため、撤退の基準は、次の日にポジションが残っている場合、そこからデータを受け取ることになります。

すべて順調なのですが、ループする問題が出てきました。例えば、Strategy Testerでは、Expert AdvisorはTake Profitまたはclose sellで ポジションを終了しますが、エントリーの基準はまだ有効なので、Expert Advisorは常にポジションを オープン、クローズして いることがわかります。

この問題は、以前は静的な datetime 変数 t を追加することで解決していましたが、現在は

 if(Maximum>0 && Flag) {
   signal = Maximum - Bid;    
   if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL 
      Opn_S = true;
      tickett= Opn_S; 
      t=Time[0];  
      if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.       
   }  
}
 
if(tickett>=0) 
    {
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
     {
       if (Time[0]>t)
            {
             Cls_S=true;   
             tickett=-1;          
            }
      }
     }

売りが効かなくなる。

動作はするがループする。

#define magic 123456789
StartHour=14;
StartMinute=1;// Время 08:01
StopHour=16;
StopMinute=30; // Время 23:58
StartTime=StartHour*60+StartMinute;
StopTime=StopHour*60+StopMinute;
static int tickett=-1;
static double Maximum=-1;
static datetime t;
if(StopTime<=StartTime) {Print("ERROR: Неправильные времена"); return(0);}
 CurrentMinutesFromDayStart=Hour()*60+Minute();// Текущее время в минутах от начала дня
 datetime td=iTime(Symbol(),PERIOD_D1,0);// Время открытия дневного бара в секундах от 01.01.1970
 if(CurrentMinutesFromDayStart<StartTime) {Maximum=-1;Flag=true;}// Если StartTime еще не настало, то после StopTime нужно пересчитать Maximum и можно открывать ордер
if(CurrentMinutesFromDayStart>StopTime && Maximum<0) {// если максимум ещё не посчитан
  datetime ts=td+StartTime*60;// начало временного диапазона в секундах от 01.01.1970
  start= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
  ts=td+StopTime*60;// конец временного диапазона в секундах от 01.01.1970
  count= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
  count=start-count;// Сколко баров длится временной интервал
  Maximum=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,count,start));//Находим максимум на заданном временном интервале
 }
 if(Maximum>0 && Flag) {
   signal = Maximum - Bid;    
   if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL 
      Opn_S = true;
      tickett= Opn_S;   
      if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.       
   }  
}
 
if(tickett>=0) 
    {
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
            {
             Cls_S=true;   
             tickett=-1;          
            }
      }

何が問題なのでしょうか?思いつく限りのことをやってみましたが、mql 、あまり得意ではありません。

Expert Advisorを添付していますが、すべてのテキストを配置することはできません。

ファイル:
svhrvrsa.mq4  14 kb