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

 
Sepulca:


時々エラーが発生するようであれば、もしかしたら証券会社が回線に異常があると判断しているのかもしれません。心配する必要はありません。

書いてあることは持っています。


おそらく証券会社でもあるのでしょう。デモではエラーが出ないのに、本番の口座で再度注文を出すと、エラーと表示されるのです。


他のEAは正常に動作しているのに、このEAは定期的にエラーを出すのですが、他に何か原因があるのでしょうか?

 
T-G:

おそらく、デモではエラーにならないのですが、リアル口座に置いたところ、また注文が開かず、エラーと表示されるのです


他のEAは単に正常に動作し、このEAは定期的にエラーを出しますが、他に何があるのでしょうか?


- プログラム中のすべての 文字列変数をチェックし、開始値を明示的に定義していることを確認したい場合。このエラーは、初期化されていない文字列が、何らかの関数にパラメータとして渡された場合に発生する可能性が高いです。
- このような関数を呼び出す前に、文字列変数の値(便宜上、プログラム行番号も)とGetLastError() の 値をプリントアウトしておいてください。

 
フォーラムユーザーの皆様、アドバイスをお願いします。
void BU()
{
   for(int a=0; a<OrdersTotal(); a++) 
      {
       if(OrderSelect(a, SELECT_BY_POS))
        {      
         if(OrderType()==OP_BUY) 
          {
           if(OrderOpenPrice()<=(Bid-BULevel)&&OrderOpenPrice()>OrderStopLoss())
            {      
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
            }
           }       
 
         if(OrderType() == OP_SELL) 
           {
            if(OrderOpenPrice()>=(Ask+BULevel)&&OrderOpenPrice()<OrderStopLoss()) 
             {
              OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Red);
             }
           } 
         }
       }
}
  return(0);

なぜブレークイーブンは機能しないのか?

Extern int BULevel = 80 を宣言しています。

開始時 if (BULevel!=0) BU()。

 
alexey1979621:
フォーラムユーザーの皆様、アドバイスをお願いします。

なぜブレークイーブンは機能しないのか?

Extern int BULevel = 80 を宣言しています。

開始時 if (BULevel!=0) BU()。




BULevel*Point
 
   double Red_Line = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_TENKANSEN,1); // красная линия 
   double Blue_Line = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_KIJUNSEN,1); // синяя линия 
   double UpO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,1); // верхняя граница облака 
   double DounO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,1); // нижняя граница облака 

      
   if(Volume[0]>1) return;

    // продажа
   if (Open[1]>Close[1] && Close[1] < DounO && Open[1]>DounO && Close[1] < Red_Line && Close[1] < Blue_Line) // продажа
     {
     Price = NormalizeDouble(Bid, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
          if(StopLoss > 0)
      {
       SL = Price - StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;

      if(TakeProfit > 0)
      {
       TP = Price - TakeProfit*Point;
       TP = NormalizeDouble(TP, Digits); 
      }
       else TP = 0;

      { 
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",Magic,0,Red);
      return;
      }
    }
     
//---- buy conditions
   // покупка
   if (Open[1]<Close[1] && Close[1] > UpO && Open[1] < UpO && Close[1] > Red_Line && Close[1] > Blue_Line) // bay
   {
     Price = NormalizeDouble(Ask, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
     if(StopLoss > 0)
      {
       SL = Price - StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;
      if(TakeProfit > 0)
      {
       TP = Price + TakeProfit*Point; // вычисляем тейкпрофит
       TP = NormalizeDouble(TP, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else TP = 0;

      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"Pattern_1",Magic,0,Blue);
      return;
      } 
   }
 }

フォーラムユーザーの皆様、Ishimokuのインジケーターが分かりません。これをもとに小さなExpert Advisorを作りましたが、買いポジションを開くだけで、売りポジションを開きません。これは、雲が反転していることが一番の原因だと思いますし、トレードに入る条件を正しく判断できていなかったこともあります。

図では、赤い下向き矢印で売りの取引を開始し、赤い上向き矢印で買いの取引を開始する必要があることを示しています。間違ったエントリーで買い取引が開始された(理論的には存在しないはずのもの)。


 
注文価格をまたがずに、保留中の注文の トリガー時刻を決定することは可能ですか?
 
zfs:
注文の価格を交差させようとせずに、保留中の注文のトリガー時間を調べることは可能でしょうか? 。


私の見方では、保留中の注文が入るとOP_BUYかOP_SELLになるのですが、(間違っているのでしょうか?)

注文種別の 情報をコメント(slow)で設定し、それが0か1に変更されたかを確認すれば、トリガー時間がわかると思います。

もっと簡単なものがあるといいのですが))。

 
ALXIMIKS:


保留中の注文が約定すると、OP_BUYやOP_SELLになると思うのですが、(間違っているのでしょうか?)

コメント(medjic)に注文種別の情報を入力し、0か1で変化した都度比較すれば、トリガータイムがわかると思います。

しかし、常時接続の必要性から見て、この方法は何となく窮屈で、一般的にはもっとシンプルなものがあればいいのですが))

はい、ありがとうございます!そのバリエーションは考えたのですが、リアルではどうなんでしょう(笑)。

 
zfs:
注文価格をまたがずに、保留中の注文のトリガー時刻を決定することは可能ですか?

datetime OrderOpenTime( )
 
<br /> translate="no">。
zfs です。

はい、ありがとうございます!それは考えたオプションですが、本物はどうなんでしょう(笑)。


チケット番号とステータスを記入してください。変更された場合、注文のオープン価格...なぜマジシャンは慣例やコメントにないものを処方するのか...。

をファイルに保存して、履歴をダンプします。あるいは、履歴をスクロールするだけでも...。