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

 
Artyom Trishkin:

質問は、思考の流れの中で、何か不可能なものを膨らませて難しい答えを出すことです......お願いします。

また、どのような言語でコミュニケーションをとっているのでしょうか。

 
Alexey Viktorov:

そのコミュニケーションは何語で行われているのですか?

質問者が理解できる言葉で、だと思います :)
 

こんにちは、レベルからのフォルスブレイクをトレードするための無料のSCRIPTは どこで手に入るか教えていただけませんか?

 
barmaley1:

こんにちは、レベルからのフォルスブレイクをトレードするための無料のSCRIPTは どこで手に入るか教えていただけませんか?

スクリプトは役に立ちません。

 

ハローガイズ、アドバイスをお願いします。

注文を開くたびに、開いた注文のデータの一部を記憶しておき、後で作業する必要があるのです。

構造的に全部保存しておかないといけないと思います。

- にゅうこうかかく

- SLがBreakevenに移動したかどうか

- ぎゃくてんだか


各ティックで、各オープンオーダーの計算を実行する必要があります。

正しい方法をアドバイスしてください。

 
Decromor:

ハローガイズ、アドバイスをお願いします。

注文を開くたびに、開いた注文のデータの一部を記憶しておき、後で作業する必要があるのです。

構造的に全部保存しておかないといけないと思います。

- にゅうこうかかく

- SLがBreakevenに移動したかどうか

- ぎゃくてんだか


各ティックで、各オープンオーダーの計算を実行する必要があります。

正しい方法をアドバイスしてください。

基本的には自分で記述している)

コードでは、次のようになります。

   for (int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS))          
         continue;
         
      if (OrderSymbol() != Symbol())
         continue;  
      
      if (m_nMagicNumber != OrderMagicNumber()) 
         continue;

      if (OrderType() == OP_BUY)
         if (!SaveOrderInfo(m_stBuySeries))
            return false;

      if (OrderType() == OP_SELL)
         if (!SaveOrderInfo(m_stSellSeries))
            return false;
   }

m_nMagicNumber - Expert Advisor の注文の ID です。

m_stBuySeries および m_stSellSeries - 見つかった指定されたタイプのすべての注文に関するデータを格納する構造体です。例えば、次のように表現することができます。

struct SeriesInfo
{
   int            nLastOrderTicket;                                                                // Тикет последнего открытого ордера
   int            nOrdersCnt;

   double         fSeriesTotalProfit;
   double         fVolumeSumm;
   double         fMinOrdersPrice;
   double         fMaxOrdersPrice;
   datetime       dtLastOrderTime;                                                                 // Время открытия последнего ордера
   OrderInfo      starrOrderInfo[];   
   
   bool           Init()
   {  
      nOrdersCnt = 0;
      nLastOrderTicket = 0;
      fSeriesTotalProfit = 0.0;
      fVolumeSumm = 0.0;
      fMinOrdersPrice = DBL_MAX;
      fMaxOrdersPrice = 0.0;
      dtLastOrderTime = 0;
      return ArrayResize(starrOrderInfo, 0, 100) == 0;
   }
};

このような構造体に対するSaveOrderInfo関数は以下のようになる。

bool SaveOrderInfo(SeriesInfo &stSeriesInfo)
{
   // Проверка возможности добавления ордера в серию
   int nTotal = ArraySize(stSeriesInfo.starrOrderInfo);
   if (ArrayResize(stSeriesInfo.starrOrderInfo, nTotal + 1, 100) < 0)
   {
      Alert(MQLInfoString(MQL_PROGRAM_NAME), (TerminalInfoString(TERMINAL_LANGUAGE) == "Russian")? ": нехватка памяти для записи данных об очередном ордере. Эксперт отключен." : 
                                                                                                   ": unable to allocate the memory for next order. Expert is turned off.");
      return false;
   }
   
   // Запись ордера
   stSeriesInfo.starrOrderInfo[nTotal].nType = OrderType();
   stSeriesInfo.starrOrderInfo[nTotal].nTicket = OrderTicket();
   stSeriesInfo.starrOrderInfo[nTotal].fVolume = OrderLots();
   stSeriesInfo.starrOrderInfo[nTotal].fTP = OrderTakeProfit();
   stSeriesInfo.starrOrderInfo[nTotal].fSL = OrderStopLoss();
   stSeriesInfo.starrOrderInfo[nTotal].fOpenPrice = OrderOpenPrice();
   stSeriesInfo.starrOrderInfo[nTotal].fProfit = OrderProfit() + OrderSwap() + OrderCommission();
   stSeriesInfo.starrOrderInfo[nTotal].dtOpenTime = OrderOpenTime();
   
   stSeriesInfo.fSeriesTotalProfit += stSeriesInfo.starrOrderInfo[nTotal].fProfit;
   stSeriesInfo.fVolumeSumm += stSeriesInfo.starrOrderInfo[nTotal].fVolume;
   stSeriesInfo.fMinOrdersPrice = MathMin(stSeriesInfo.fMinOrdersPrice, OrderOpenPrice());
   stSeriesInfo.fMaxOrdersPrice = MathMax(stSeriesInfo.fMaxOrdersPrice, OrderOpenPrice());
   
   if (OrderOpenTime() > stSeriesInfo.dtLastOrderTime)
   {
      stSeriesInfo.dtLastOrderTime = OrderOpenTime();
      stSeriesInfo.nLastOrderTicket = OrderTicket();
   }
   
   return true;
}
削除済み  

少し話がそれますが

https://www.finam.ru/profile/tovary/aluminum/export/?market=24

は、ファイルを取得しました。

シンボルに込めようとしています。

その結果、残念なことに

ありがとうございます。

 
Ihor Herasko:

基本的に、あなた自身が記述していることです))

コードで言うと、以下のようになります。

m_nMagicNumber - Expert Advisorの注文のIDです。

m_stBuySeries および m_stSellSeries - 見つかった指定されたタイプのすべての注文に関するデータを格納する構造体です。例えば、次のように表現することができます。

このような構造体に対するSaveOrderInfo関数は、以下のようになる。

こんなに詳しく教えていただいて、本当にありがとうございました。

 

こんにちは。

みんな、EAを1つのアカウントにリンクさせる方法のコードを教えてください(最新の更新のため)。

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

 
Aleksandr Lishchenko:

こんにちは。

みんな、EAを1つのアカウントにリンクさせる方法のコードを教えてください(最新の更新のため)。

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

シンプルに。

if (AccountInfoInteger(ACCOUNT_LOGIN) != <номер счета>)
   return;