アドバイザーを無料でお書きします - ページ 17

 
こんにちは、MQL4を学び始め、MACDサンプルExpert Advisorを始めました。整理してみました。一通り理解したつもりですが、私のDemoでは一度に複数の通貨ペアで動作させることができません。ターミナルにすでにオープンポジションが ある場合(手動またはExpert Advisorによる)、動作しません。 知っていることはすべて試しました。知識不足なので、何を追加・修正すればよいかアドバイスをお願いします。
 
igor.malish:
こんにちは、MQL4の勉強を始めて、MACDのサンプルExpert Advisorを使い始めました。解析してみました。一通り理解できたと思うのですが、デモのExpert Advisorとして異なる通貨ペアで同時に動作させることができないのです。ターミナルにすでにオープンポジションが ある場合(手動またはExpert Advisorによる)、それは動作しません。知識不足なので、何を追加・修正すればよいかアドバイスをお願いします。

MACDサンプルは、複数の商品で取引することを想定していません。

total=OrdersTotal();

   if(total<1)

     {...
このような状況では、少なくとも1つの商品についてすでに取引が開始されている場合、取引を開始することは実質的に禁止されています。
 
dimeon:

MACDサンプルは、複数の商品で取引することを想定していません。

この条件では、どの商品でも、少なくとも1つの取引がすでに開かれている場合は、実質的に取引を開始することができません。
私も同様の問題がありましたが、1日1トレードの場合です。すなわち、条件はOrdersTotal() だけでなく、クローズしたものの履歴から。
 
OrdersTotal、OrderSymbol、OrderMagicNumberを連動させる方法はありますか?
 
igor.malish:
OrdersTotal、OrderSymbol、OrderMagicNumberを連動させる方法はありますか?
バカな質問ですね。
 
ごあいさつ私のEAを新しいmqlに適応させることができる人はいますか?(#property strict) 発展途上で機能は向上しているが、書かれている言語が時代遅れになっている。このExpert Advisorは、ZigZaHod v1.1を後から改造したもので、私がマスターして改造できるように、最小限の変更が必要です。深く関わっていく覚悟はできています。やり直しの必要性についての理解が不足している。
 

バグの修正を手伝ってください:アイデアは、EAが新しい一日が始まるときに、一日一回動作することです。

私は00:00に閉じたローソク足のことです。 私は翌日まで何もしてはいけません。 私は何を間違えているのでしょうか?


extern string Times = "Time";
extern int StartHour    = 1;
extern int TakeProfit   = 50;
extern int StopLoss     = 50;
extern int Lots         = 1;

void OnTick()
{ 
   static bool IsFirstTick = true;
   static int ticket = 0;
   int h=TimeHour(TimeCurrent());
   Alert("TimeHor: ", h);
   if(Hour() == StartHour)
   {
    if (IsFirstTick == true)
      IsFirstTick - false;
      
      bool res;
      res= OrderSelect(ticket, SELECT_BY_TICKET);
      if(res == true)
      { 
         if(OrderCloseTime() == 0)
         {
            bool res2;
            res2 = OrderClose(ticket, Lots, OrderClosePrice(), 10);
            
            if(res2 == false)
            {
               Alert("Error Closing Order #", ticket);
               }
         }   
      }
       if(Open[0] < Open[StartHour])
      {
         ticket = OrderSend(Symbol(), OP_BUYLIMIT, Lots, High[1],10, Low[1]-StopLoss*Point, High[1]+TakeProfit*Point,"Set bu ForexRobot");
         if(ticket < 0)
         {
           Alert("Error Sending Order!");
         }  
       }
       else
       {
         ticket = OrderSend(Symbol(), OP_SELLLIMIT, Lots, Low[1],10, High[1]+StopLoss*Point, Low[1]+TakeProfit*Point,"Set bu ForexRobot");
         if(ticket < 0)
         {
           Alert("Error Sending Order!");
         } 
    }   
}
 
MIR_KAZAN:

バグを修正するヘルプ:アイデアは、EAが新しい一日が始まるときに、一日一回動作する必要がありますです。

私は00:00に閉じたローソク足のことです。 私は翌日まで何もしてはいけません。 私は何を間違えているのでしょうか?


コードを貼り付ける場合は、フォーラムの埋め込み機能を使用してください:フォーラムで正しくコードを貼り付ける
 
barabashkakvn:
コードを貼り付ける場合は、フォーラムの組み込み機能を使用してください:フォーラムにコードを正しく挿入 する
了解です。
 
MIR_KAZAN:

バグの修正を手伝ってください:アイデアは、EAが新しい一日が始まるときに、一日一回動作することです。

つまり、00:00にクローズしたローソク足は、翌日まで何もしないはずです。 何が間違っているのでしょうか?


エラーが発生しました。

      IsFirstTick - false;

であるべきだ=。

理由: