초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1126

 
내 고문이 예를 들어 파운드백 차트에 있고 내가 그가 유로벅스 차트에서 수평선 을 보기를 바라는 경우 그러한 칩이 롤링되지 않는 것으로 판명되면 그러한 질문을 하시겠습니까?
 
Aleksandr Egorov :
내 고문이 예를 들어 파운드백 차트에 있고 내가 그가 유로벅스 차트에서 수평선 을 보기를 원하는 경우 그러한 칩이 작동하지 않습니까?

함수의 첫 번째 매개변수에 주의

 string    ObjectName ( 
   long   chart_id,           // идентификатор графика 
   int    pos,                 // номер в списке объектов 
   int    sub_window=- 1 ,       // номер окна 
   int    type=- 1              // тип объекта 
   );

그래픽 개체 작업을 위한 모든 기능에 있습니다.

올바른 식별자를 사용하면 모든 차트에서 개체의 속성을 쉽게 가져올 수 있습니다.

Документация по MQL5: Графические объекты / ObjectName
Документация по MQL5: Графические объекты / ObjectName
  • www.mql5.com
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду...
 
글쎄, long은 m5이고 0은 현재 차트이지만 string sumbol은 어떻습니까? 유로 차트에서 파운드에 대한 정보가 필요합니다. 아마도 이해하지 못할 수도 있습니다.
 
Aleksandr Egorov :
글쎄, long은 m5이고 0은 현재 차트이지만 string sumbol은 어떻습니까? 유로 차트에서 파운드에 대한 정보가 필요합니다. 아마도 이해하지 못할 수도 있습니다.

아니요, 기간이 없습니다. 차트 ID가 필요합니다. ChartID

옵션 중 하나: 선이 그려진 차트에서 ChartID 를 인쇄하는 스크립트를 실행하면 이미 다른 차트에서 line 속성에 액세스할 수 있습니다. 예를 들어 수평선인 경우 ObjectGetDouble 을 통해

 
Vladimir Karputov :

아니요, 기간이 없습니다. 차트 ID가 필요합니다. ChartID

옵션 중 하나: 선이 그려진 차트에서 ChartID 를 인쇄하는 스크립트를 실행하면 이미 다른 차트에서 line 속성에 액세스할 수 있습니다. 예를 들어 수평선인 경우 ObjectGetDoubl 을 통해 감사합니다.

고맙습니다

 
Aleksandr Egorov :

고맙습니다

다른 옵션이 있습니다. 그래픽 개체의 이름 과 유형만 알면 됩니다(이름은 모든 차트를 검색하는 데 필요하고 유형은 원하는 개체를 정확하게 찾기 위해 필요합니다)...

 
Aleksandr Egorov :

고맙습니다

옵션 번호 # 2: 개체의 이름, 유형 및 찾을 창을 설정합니다(기본 창에서 "0"). 검색은 OnInit에서 수행되며 개체가 발견되면 차트 식별자 를 m_obj_chart_id 변수에 저장합니다.

 //+------------------------------------------------------------------+
//|                                    Object from another chart.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//--- input parameters
input string       InpObjName     = "Object Name" ;   // Object: Name
input ENUM_OBJECT InpObjType     = OBJ_HLINE ;       // Object: Type
input int          InpObjSubWindow= 0 ;               // Object: Window Index
//---
long      m_obj_chart_id=- 1 ;   // Object ChartID
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {

//--- variables for chart ID
   long currChart,prevChart= ChartFirst ();
   int i= 0 ,limit= 100 ;
   Print ( "ChartFirst =" , ChartSymbol (prevChart), " ID =" ,prevChart);
   while (i<limit) // We have certainly not more than 100 open charts
     {
      currChart= ChartNext (prevChart); // Get the new chart ID by using the previous chart ID
       if (currChart< 0 )
         break ;           // Have reached the end of the chart list
       int total= ObjectsTotal (currChart,InpObjSubWindow,InpObjType);
       for ( int j= 0 ; j<total; j++)
         if ( ObjectName (currChart,j,InpObjSubWindow,InpObjType)==InpObjName)
           {
            m_obj_chart_id=currChart;
             break ;
           }
      prevChart=currChart; // let's save the current chart ID for the ChartNext()
      i++; // Do not forget to increase the counter
     }
//---
   if (m_obj_chart_id==- 1 )
       return ( INIT_FAILED );
   else
       Print ( "Object Name " ,InpObjName, " found on chart " ,m_obj_chart_id);
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---

  }
//+------------------------------------------------------------------+
 
지정된 손절매 및 이익실현 수준으로 시장 주문( TRADE_ACTION_DEAL )을 하고 브로커가 SL 또는 TP로 즉시 주문하는 것을 금지하는 경우 주문이 취소되거나 SL 및 TP 값이 0으로 설정됩니까?
 
Vladimir Karputov :

옵션 번호 # 2: 개체의 이름, 유형 및 찾을 창을 설정합니다(기본 창에서 "0"). 검색은 OnInit에서 수행되며 개체가 발견되면 차트 식별자 를 m_obj_chart_id 변수에 저장합니다.

더욱 감사합니다

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문 MQL5 MT5 MetaTrader 5

블라디미르 카르푸토프 , 2019.08.31 08:16


그리고 시작 가격 형성의 실수:

 //--- start work
   double start_price_ask=m_symbol.Ask()-ExtUpGap;
   double start_price_bid=m_symbol.Bid()+ExtDownGap;

시작가를 Stop에 대해 별도로 그리고 Limit 보류 주문에 대해 별도로 시작 가격을 설정하는 것이 좋습니다.

안녕하세요 블라디미르님!

아래에 제공된 스크립트 시작을 수정하는 데 도움이 됩니다.

 //--- start work


   double start_price_ask= 0.0 ;
   double start_price_bid= 0.0 ;
   if (InpPending==stop)
     {
      start_price_ask=m_symbol.Ask()+ExtUpGap;
      start_price_bid=m_symbol.Bid()-ExtDownGap;
     }
   else
       if (InpPending==limit)
        {
         start_price_ask=m_symbol.Ask()-ExtUpGap;
         start_price_bid=m_symbol.Bid()+ExtDownGap;
        }

스크립트는 매도 및 매수가 아니라 이전 바(촛불)의 고가와 저가에서 보류 주문을 설정해야 합니다.

안부 인사를 전합니다. 블라디미르.

사유: