MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 560

 
Artyom Trishkin :

생각의 흐름에 어려운 질문 이상한 대답이 생각의 흐름의 죽에 담을 수 없는 무언가가 솟구쳐 나와주세요...

그리고 어떤 언어를 사용합니까?

 
Alexey Viktorov :

그리고 어떤 언어를 사용합니까?

질문자님이 이해하실 수 있을 것 같아요 :)
 

안녕하세요! 프롬프트 plz. 레벨에서 잘못된 브레이크아웃 거래를 위한 무료 SCRIPT 를 얻을 수 있는 곳.

 
barmaley1 :

안녕하세요! 프롬프트 plz. 레벨에서 잘못된 브레이크아웃 거래를 위한 무료 SCRIPT 를 얻을 수 있는 곳.

스크립트는 여기서 도움이 되지 않습니다.

 

안녕하세요! 얘들아, 제발 말해줘

주문을 열 때마다 후속 작업을 위해 열린 주문의 일부 데이터를 기억해야 합니다.

이 모든 것을 구조에 저장해야 한다고 생각합니다.

- 입장료

- SL이 손익분기점으로 전환되었는지 여부

- 반전 계산의 최고가


각 틱 에서 각 미결 주문에 대한 계산을 수행해야 합니다.

제대로 하는 방법을 알려주세요.

 
Decromor :

안녕하세요! 얘들아, 제발 말해줘

주문을 열 때마다 후속 작업을 위해 열린 주문의 일부 데이터를 기억해야 합니다.

이 모든 것을 구조에 저장해야 한다고 생각합니다.

- 입장료

- SL이 손익분기점으로 전환되었는지 여부

- 반전 계산의 최고가


각 틱 에서 각 미결 주문에 대한 계산을 수행해야 합니다.

제대로 하는 방법을 알려주세요.

기본적으로, 당신은 모든 것을 스스로 설명했습니다))

코드에서는 다음과 같이 보일 것입니다.

   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 - EA 주문 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/commodity/aluminum/export/?market=24

파일을 받았습니다.

캐릭터에 담아보려고 합니다.

결과는 우울하다

spsb

 
Ihor Herasko :

기본적으로, 당신은 모든 것을 스스로 설명했습니다))

코드에서는 다음과 같이 보일 것입니다.

m_nMagicNumber - EA 주문 ID,

m_stBuySeries 및 m_stSellSeries - 주어진 유형의 발견된 모든 주문에 대한 데이터를 저장하는 구조입니다. 예를 들어 다음과 같이 설명할 수 있습니다.

이러한 구조에 대한 SaveOrderInfo 함수는 다음과 같습니다.

이렇게 자세한 도움을 주셔서 정말 감사합니다!

 

안녕하세요!

얘들 아, 코드를 알려주십시오. 고문을 하나의 계정에 연결하는 방법 (마지막 업데이트 용).

매우 감사합니다.

 
Aleksandr Lishchenko :

안녕하세요!

얘들 아, 코드를 알려주십시오. 고문을 하나의 계정에 연결하는 방법 (마지막 업데이트 용).

매우 감사합니다.

단지:

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