[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 161

 
Mopo3:

そう、それは「ゲームを学ぶ」すなわち「言語を学ぶ」ということなのです :)


まあ、私は原理は1分の時間があったという事実に基づいていることを覚えているし、その後、20分の期間を参照してくださいすることは何でしょう。

要は...その時は何も考えなかった...))

 

みんな!MAトレンドの変化を見てください、どなたか助けてください。https://www.mql5.com/ru/forum/131277/page159

 
それは嘘ではないので、マレーレベルに設定する必要がありますどの期間をアドバイスすることが困難でない場合、またはその期間の各TF。独自の期間があるとすれば、それはどの期間なのか?
 

こんにちは!!!!!!!

あなたはどこの間違いである私を伝えることができます...... コンパイル時にエラーがない、しかし、テスターのログeSvechi + MA AUDUSD、H1で取引されていません: OrderSendエラー131と 何の理由です - 私は理解していません。

//+------------------------------------------------------------------+
//|                                                   eSvechi+MA.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


//---- input parameters
extern int       MA=13;
extern double    Lots=0.01;
extern int       StopLoss=100;
extern int       TakeProfit=100;
extern int       MagicNumber=501;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol() && OrderCloseTime() >= Time[0] && OrderType() == Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

        // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

        //Рассчитываем значения средних на 0-ом и 1-м баре
    double MA_0 =iMA(NULL, 0, MA,0,1,1,0);    
    double MA_1 =iMA(NULL, 0, MA,0,1,1,1);
    
 //-------------открытие позиции Buy покупка-----------------
 //сравниваем на 1-м баре цену закр. и откр. между собой и с МА, на 0-м баре откр. меньше МА закр. больше МА
    if(
       (Open[0+1]<Close[0+1])&& 
       (Close[0+1]<MA_1)&&
       (Open[0]<MA_0)&&
       (Close[0]>MA_0)
      )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    //-------------Открытие позиции Sell продажа----------------   
    if(
       (Open[0+1]>Close[0+1])&& 
       (Close[0+1]>MA_1)&&
       (Open[0]>MA_0)&&
       (Close[0]<MA_0)
      )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+

ERR_INVALID_TRADE_VOLUME 131 ボリュームが不正です、ボリュームの造粒にエラーがあります。すべての取引の試行を停止し、プログラムのロジックを変更する必要があります。

ロジックは正しいようです...........................

 
igrok2008:

こんにちは!!!!!!!

あなたはどこの間違いである私を伝えることができます...... コンパイル時にエラーがない、しかし、テスターのログeSvechi + MA AUDUSD、H1で取引されていません: OrderSendエラー131と何の理由です - 私は理解していません。

ERR_INVALID_TRADE_VOLUME 131 ボリュームが不正です、ボリュームの造粒にエラーがあります。すべての取引の試行を停止し、プログラムのロジックを変更する必要があります。

ロジックは正しいようです..........................


ロットは、MarketInfo(Symbol(), MODE_MINLOT)よりも小さくしてはならない(+の倍数の並べ替え)。

多くのトレーダーのプログラムは0.1ですが、あなたのものは10倍も少ないのです。

 
ilunga:


ロットは少なくとも(+の倍数の並べ替え)MarketInfo(Symbol(), MODE_MINLOT)でなければならない。

多くのトレーダーのプログラムが0.1であるのに対し、あなたは10倍も少ないのです。

AND ALL !!!!全体のキャッチはこれ!!! ..............................です。さて、5〜10ドルの小さなデポはどうでしょう?
 
ilunga:


ロットは少なくとも(+の倍数の並べ替え)MarketInfo(Symbol(), MODE_MINLOT)でなければならない。

多くのトレーダーのプログラムが0.1であるのに対し、あなたは10倍も少ないのです。

ロットを0.1に変更しても取引されない
 
igrok2008:
ロットを0.1に変更しても動作しません。


インターバンクで実行したところ、0.01でもすべて動作しました。

Alpariは0.01ではエラー131、0.1では動作する

 
ilunga:


インターバンクで実行したところ、0.01でもすべて動作しました。

Alpariは0.01ではエラー131、0.1では動作する

まさにAlpari ondemo account and testing does not work!!! terminal mt4 build 229...... prompt!!!!
 
igrok2008:

こんにちは!!!!!!!

あなたはどこの間違いである私を伝えることができます...... コンパイル時にエラーがない、しかし、テスターのログeSvechi + MA AUDUSD、H1で取引されていません: OrderSendエラー131と何の理由です - 私は理解していません。

ERR_INVALID_TRADE_VOLUME 131 ボリュームが不正です、ボリュームの造粒にエラーがあります。すべての取引の試行を停止し、プログラムのロジックを変更する必要があります。

ロジックは正しいようです...........................

NormalizeDoubleで ストップロス、テイクプロフィット、オープンプライスを正規化する