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

 
mzk_3om6u:

まあ、1ティックごとに新しい情報が流れて、1ティックごとに買いシグナルが流れるんだけど、サーバーはその瞬間(ティックの間)にログインしようとする。


では、そのままで、何が悪いのでしょうか?

しかし、どちらかといえば、IsConnected()関数がある。

 
Integer:


だから、そのままでいいんだよ、何を偉そうに。

しかし、どちらかといえば、IsConnected()関数がある。


まあ、最悪なのは、ポジトレードが開かなかったことですが......。)

しかし、ブローカーがふざけていたのか、それとも私の側に問題があったのか、本当のところを知りたいです。

 
mzk_3om6u:


1.まあ、最悪なのは、ポジトレードが開かなかったことです:)

2.しかし、ブローカーがふざけていたのか、それとも私に問題があったのか、本当のところを知りたいです。


1.ある意味、普通の自然な現象だと思う。

知る由もない。数秒間、接続が切れることがよくありますね。

 
Integer:


1.これはある意味、普通の自然現象です。

2.知る由もない。数秒間、接続が切れることが非常に多い。


私はすでに彼らと4つの問題に気づいたが、このブローカーとのテストの一ヶ月で、それは、これが起こったのは初めてだ - 私はそれが別のものを探すための時間だと思います:)。

ご回答ありがとうございました!)

 
TarasBY:
自分が書いたものを見ることはあるのか!

何か、「ここが犬の居場所だ」と思うのです。


ありがとう、わかったよ
 
artmedia70:
フラッグは必要ない。異常時にフラグを消失させることができる。その際、ポジションに空きがあるかどうかを確認し、空きがあれば、さらに

あ、あったあった。理屈はわかったので、こんな感じです。しかし、コンパイルすると、''エラー''が発生します。)- assignment expect D:\AlpariexpertsSpace.mq4 (160, 92).すべてのブラケットを10回チェックしたのですが、エラーが見つかりませんでした。ポルターガイストの一種かartmedia70、もしよろしければエラーの場所を教えてください。

extern double  Lots             = 0.1;
extern string Сomment           = "Pattern_1";
extern int TakeProfit           = 0;     
extern int StopLoss             = 0;   
extern int Step                 = 0;   

extern int BULevel              = 200;
extern int   NotBULevel         = 20;         // Уровень безубытка в пунктах

extern int Slippage             = 2; // проскальзывание 
extern int Magic                = 111;

int ticket, otype;
double TP, price;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
{
      if (Digits ==3 || Digits ==5) // для пятизначного брокера
         {
            TakeProfit *= 10;
            StopLoss *= 10;
            Slippage *= 10;
            Step *= 10;
         }
      return(0);
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   if (CountTrades()==0 && Open[1]>Close[1] && Open[2]<Close[2] && High[1]>High[2] && Low[1]<Low[2])  // продажа
   {
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"Pattern_1",111,0,Red);
      if (OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES))
      {
         TP=NormalizeDouble(Bid - TakeProfit * Point, Digits);
         OrderModify(ticket, OrderOpenPrice(),0,TP,0);
      }
   }
   else
   if (CountTrades()==0 && Open[1]<Close[1] && Open[2]>Close[2] && High[1]>High[2] && Low[1]<Low[2]) // покупка
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Pattern_1",111,0,Blue);   
      if (OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES))
      {
         TP=NormalizeDouble(Ask + TakeProfit * Point, Digits);
         OrderModify(ticket, OrderOpenPrice(),0,TP,0);
      }
    }
   if (CountTrades()>0)
      {
      otype = FindLastOrderType();
      if (otype == OP_BUY)
         { // ценапоследнего ордера на покупку
         price = FindLastBayPrice();
         
         if ((Bid - price) / Point >= Step)
            {
               ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid,Slippage,0,0,"Pattern_1",111,0,Red);  
            }
         }
      else if (otype == OP_SELL)
         { // цена последнего ордера на продажу
         price = FindLastSellPrice()
         
          if ((price - Ask) / Point >= Step)
            {
               ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask,Slippage,0,0,"Pattern_1",111,0,Blue);  
            }
         }
      }
   
    
   return(0);
  }
     
 //+------------------------------------------------------------------+
int CountTrades() // количество открытых ордеров
   {
      int count=0;
      for(int i=OrdersTotal()-1; i>=0; i--) 
      {
         if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
         {
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==111)
            {
               if (OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
            }
         }
      }
    return(count);  
   }
 //+------------------------------------------------------------------+
int FindLastOrderType() // вычисляем тип последнего ордера
   {
      int oticket, ticketnumber=0, OType;
      for(int i=OrdersTotal()-1; i>=0; i--)   
      {
         if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
         {
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==111)
            {
              oticket=OrderTicket();
              if (oticket > ticketnumber) 
              {
               ticketnumber = oticket;
               OType = OrderType(); // самый последний тикет
              }               
            }
         }
      }
    return(OType);    
   }
       
       
  //+------------------------------------------------------------------+
double FindLastBayPrice() // находим цену последнего ордера на покупку
   {
      int oticket, ticketnumber=0;
      double oprice;
      for(int i=OrdersTotal()-1; i>=0; i--)   
      {
         if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
         {
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==111 && OrderType() = OP_BUY)
            {
              oticket=OrderTicket();
              if (oticket > ticketnumber) 
              {
               ticketnumber = oticket;
               oprice = OrderType(); // самый последний тикет
              }               
            }
         }
      }
    return(oprice);    
   }      
  //+------------------------------------------------------------------+
double FindLastSellPrice() // находим цену последнего ордера на продажу
   {
      int oticket, ticketnumber=0;
      double oprice;
      for(int i=OrdersTotal()-1; i>=0; i--)   
      {
         if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
         {
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==111 && OrderType() = OP_SELL)
            {
              oticket=OrderTicket();
              if (oticket > ticketnumber) 
              {
               ticketnumber = oticket;
               oprice = OrderType(); // самый последний тикет
              }               
            }
         }
      }
    return(oprice);    
   }        

 //+------------------------------------------------------------------+

void BU()
{
   for(int a=0; a<OrdersTotal(); a++) 
  {
       if (OrderSelect(a, SELECT_BY_POS)) 
        {      
         if(OrderMagicNumber()!=111  || OrderSymbol()!=Symbol()) continue;
         if(OrderType()==OP_BUY) 
          {
           if(OrderOpenPrice()<=(Bid-BULevel*Point-NotBULevel*Point)&& OrderOpenPrice()>OrderStopLoss())// последнеее условие БУ + 20 пипсов
            {      
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+NotBULevel*Point,OrderTakeProfit(),0,Green);
            }
          }       
 
         if(OrderType() == OP_SELL) 
           {
            if(OrderOpenPrice()>=(Ask+BULevel*Point+NotBULevel*Point)&& (OrderOpenPrice()<OrderStopLoss() || OrderStopLoss() == 0 ))// последнеее условие БУ + 20 пипсов
             {
              OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NotBULevel*Point,OrderTakeProfit(),0,Red);
             }
           } 
         }
   }
 return(0);
 }

 
 if (Digits ==3 || Digits ==3) // для пятизначного брокера
なんだか変な感じですね。
 
ALXIMIKS:
というのは、ちょっと ですね。
修正しました、 ALXIMIKS さん、間違いやロジックの確認をお願いします。
 
インストールする前に説明書を読む必要があります - 最初の15ページ。
ファイル:
kod.txt  7 kb
 

この関数が正しく書かれているかどうか教えてください。

double GetLastUpperFractal()
{
double LastUpperFractalPrice = 0;
for (int i = 0; i<=Bars; i++)
{
double FractalUp = iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i);
if (FractalUp != 0) LastUpperFractalPrice = FractalUp;
} ←クリックすると拡大表示します。
return (LastUpperFractalPrice);
}.
//+------------------------------------------------------------------------+
double GetLastLowerFractal()
{
double LastLowerFractalPrice = 0;
for (int i = 0; i<=Bars; i++)
{
double FractalDown = iFractals(Symbol(),PERIOD_M5,MODE_LOWER,i);
if (FractalDown != 0) LastLowerFractalPrice = FractalDown;
} } FractalLowerFractal(0) = 0; FractalLowerFractal(5); FractalLowerFractal(6); FractalLowerFractal(7); FractalLowerFractal(8); FractalLowerFractal(8)
return (LastLowerFractalPrice);
}.