MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 126

 
MosheDayan:
信号について、MTによるものか、サードパーティによるものか、詳しく教えてください。
できますよ、ここに書いて あります。レベルの代わりに自分のトレードを放送するだけなので、このシステムが気に入れば誰でも参加することができるのです。
 

ありがとうございました、直りました。

 
ターミナル全体または個々のExpert Advisorで、例えば特定のインディケータに従って自動売買を停止/開始することは可能ですか?
 
Andrey Sokolov:
自動売買は、例えばある指標のデータに応じて、端末全体や個別のEAで無効化/停止することができますか?

端末のグローバル変数を 利用し、全てに同じGPを規定し、例えば0になると全てのEAが取引しないなど、値を監視することができます。

また、WinAPIを利用してターミナルパネル上の自動売買ボタンを探し、押すことも可能です。

 
Vitalie Postolache ありがとうございました。
 
こんにちは、チャート上にテキスト(ステッカー、リマインダー)を表示する際、チャートと一緒に移動せず、固定で表示するコードはありますか?ありがとうございました。
 
Vladimir.Tyumen:
こんにちは、チャート上にテキスト(ステッカー、リマインダー)を表示する際、チャートと一緒に移動せず、固定で表示するコードはありますか?ありがとうございました。
OBJ_LABEL
 
最近、グリッドEAを作成するビデオチュートリアルに出会いました。しかし、私は自分のロボットのオープントレードを見ることができない、私はあまりにも怠惰ではない人に尋ねたい)))

ありがとうございました。


extern double Lots      = 0.1;
extern double Profit    = 50;
extern int Step         = 30;
extern int Magic        = 6677;
extern int Slippage     = 5;

extern int maPeriod     =100;
extern int maShift      =1;

double ma, FindLastBuyPrice, price;
//------------------------------------------------------------------
//___ПРОВЕРКА_ЗНАКОВ_ПОСЛЕ_ТОЧКИ___
//------------------------------------------------------------------
int OnInit()
{
   if (Digits == 3 || Digits == 5)
   {
      Step     *= 10;
      Slippage *= 10;
   }
   return(INIT_SUCCEEDED);
}
//---------------------------------------------
void OnDeinit(const int reason)
{

}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
void OnTick()
{
  
   ma = iMA(Symbol(),0,maPeriod, maShift, MODE_SMA, PRICE_CLOSE, 0);
  
   if (CountBuy() && CountSell() == 0 && Bid < ma)//
   {
      if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Продажу");
   }
   if (CountBuy() && CountSell() == 0 && Ask < ma)
   {
      if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      
   }
   if (CountBuy() >=1)
   {
      price = FindLastBuyPrice();
      if ((price - Ask) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      }
   }
  
   if (CountSell() >=1)
   {
      price = FindLastBuyPrice();
      if ((Bid - price) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Ппродажу");
      }
   }
  
  
   double op = CalculateProfit();
   if (op >= Profit)
   {
      CloseAll();
   }      
  
}
//------------------------------------------------------------------
void CloseAll()
{
   for (int i = OrdersTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПОКУПКУ");
               }
            }
            if (OrderType() == OP_SELL)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПРОДАЖУ");
               }
            }
         }
      }
   }
}
//------------------------------------------------------------------
double CalculateProfit()  // Считаем профит по всем ордерам
{
   double oProfit = 0;
   for (int i=OrdersTotal() -1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
               oProfit += OrderProfit();
            }
         }
      }
   }
  
   return(oProfit);

}
//------------------------------------------------------------------
double FindLastBuyPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
double FindLastSellPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+


 

皆さん、こんにちは。ここで質問です。

ライブラリ付きのインジケータがあり、そのためのExpert Advisorを作成 する必要があります。

どのようなアクションのスキームがファイルの増殖を避けるために必要であり、結果として2つまたは1つであるべきです。どちらも使いたい。


Voznesen:
最近、グリッドEAの作成方法のビデオチュートリアルに出会いましたが、書いて、コンパイルして、0エラー、0ワーニングでした。しかし、ロボットは取引を開始しない。私は誰かが怠惰であるかどうかを確認するためにコードを出している)))
どのように取引を開始するのか、どのような条件で取引を開始するのか?
 
trader781:

皆さん、こんにちは。ここで質問です。

ライブラリ付きのインジケータがあり、そのためのExpert Advisorを作成 する必要があります。

どのようなアクションのスキームがファイルの増殖を避けるために必要であり、結果として2つまたは1つであるべきです。理想的なのは、それらが組み合わされることです。


リソースとして接続されたカスタムインジケータとの連携

mql4-programの作業には、1つ以上のカスタムインジケータが必要な場合があり、それらのすべては実行可能なmql4-programのコードに含めることができます。指標をリソースとして含めることで、プログラムの配布を簡素化することができます。

ただ、インクルードファイルがない場合、他のコンピュータでコンパイルできないのが難点です。
Ресурсы - Программы MQL4 - Справочник MQL4
Ресурсы - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Ресурсы - Программы MQL4 - Справочник MQL4