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

 
MQL_User :

언뜻보기에는 프로그램에서 그래프를 다시 그리는 것이 당연해야하기 때문에 그러한 문제에 직면하게 될 것이라고 생각하지 않았습니다. 이런 점 에서 ChartRedraw() 함수의 목적은 불분명하다 ...

이것은 표시기가 아니라 그래픽 개체의 속성에 대한 변경 사항을 표시하기 위한 것입니다.

표시기에 눈금을 보내야 합니다. 그러면 표시기가 다시 그려집니다. 음.. 즉, 새 틱에서 해야 할 일을 합니다.

그리고 새 틱을 보내려면 옵션이 아닌 틱을 기다리거나 옵션이 아닌 RMB 차트 --> 새로 고침을 업데이트하거나 다음 매개변수와 함께 ChartSetSymbolPeriod() 함수를 사용해야 합니다. 현재 차트:

 ChartSetSymbolPeriod ( 0 , NULL , PERIOD_CURRENT );
Документация по MQL5: Операции с графиками / ChartSetSymbolPeriod
Документация по MQL5: Операции с графиками / ChartSetSymbolPeriod
  • www.mql5.com
Меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд. Возвращает true в случае удачного помещения команды в очередь графика, иначе false. Чтобы...
 


안녕하세요, 알아낼 수 있도록 도와주세요. 나는 지정가 주문을 열지만 시장 가격으로 스크립트를 작성했습니다. 모든 것이 작동합니다. 제한을 시장 아래/위에서 설정하도록 변경하기로 결정했습니다. 반환 코드가 입찰하더라도 아무 일도 일어나지 않습니다. 서버 10009 및 GetLastError ()는 0을 반환합니다. 코드:

 void OnStart ()
 { MqlTradeRequest request={ 0 };
   MqlTradeResult   result={ 0 };
 double Bid= SymbolInfoDouble ( Symbol (), SYMBOL_BID );
 double Ask= SymbolInfoDouble ( Symbol (), SYMBOL_ASK );
 int digits= SymbolInfoInteger ( _Symbol , SYMBOL_DIGITS );  
 double p= NormalizeDouble ( ChartPriceOnDropped (),digits); 
 if ( SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE )== 10 )
 {p= NormalizeDouble ( ChartPriceOnDropped ()* 0.1 ,digits)/ 0.1 ;
 } 
 int V= 75 ;
           if (p<Ask)
            {
             request.action   = TRADE_ACTION_PENDING ;                     // тип торговой операции
             request.symbol   = Symbol ();                               // символ
             request.volume   = MathFloor ( AccountInfoDouble ( ACCOUNT_BALANCE )/V/((Ask-p)/
             SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE )* SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE )));  
             if (request.volume> AccountInfoDouble ( ACCOUNT_BALANCE )/ SymbolInfoDouble ( _Symbol , SYMBOL_MARGIN_INITIAL )) 
             { request.volume= MathFloor ( AccountInfoDouble ( ACCOUNT_BALANCE )/ SymbolInfoDouble ( _Symbol , SYMBOL_MARGIN_INITIAL ));
             }                             
             request.type     = ORDER_TYPE_BUY_LIMIT ;                         // тип ордера
             request.price    =Ask;                                     // цена для открытия
             request.deviation= 50 ;                                     // допустимое отклонение от цены
             request.sl      =p;                                       // Stop Loss позиции
             request.tp      = NormalizeDouble (Ask+(Ask-p)* 3 ,digits);     // Take Profit позиции
             request.type_filling= ORDER_FILLING_IOC ;
             request.type_time= ORDER_TIME_DAY ;
             request.stoplimit=Ask;
             OrderSend (request,result);
            }
예를 들어 request.price가 설정된 경우: Ask-Point()*30이 설정되지 않으면 가격 정규화도 아무 것도 제공하지 않습니다.
 
Artem, 위의 질문에 대해 무엇을 말할 수 있습니까? 의견이 흥미 롭습니다. 학습으로.
 
Artyom Trishkin :

이것은 표시기가 아니라 그래픽 개체의 속성에 대한 변경 사항을 표시하기 위한 것입니다.

표시기에 눈금을 보내야 합니다. 그러면 표시기가 다시 그려집니다. 음.. 즉, 새 틱에서 해야 할 일을 합니다.

그리고 새 틱을 보내려면 옵션이 아닌 틱을 기다리거나 옵션이 아닌 RMB 차트 --> 새로 고침을 업데이트하거나 다음 매개변수와 함께 ChartSetSymbolPeriod() 함수를 사용해야 합니다. 현재 차트:

Artyom, 감사합니다.

모든 것이 효과가 있었습니다. :)

 
시각적 테스트 중에 차트의 어드바이저에 사용된 모든 표시기를 비활성화하는 방법을 아는 사람이 있습니까?
 
Сергей Таболин :
시각적 테스트 중에 차트의 어드바이저에 사용된 모든 표시기를 비활성화하는 방법을 아는 사람이 있습니까?

TesterHideIndicators(true);

 

지표가 다른 기간에 작동할 준비가 되지 않았는지 확인하는 방법은 무엇입니까?

히스토리는 인접한 시간대에 대해 펌핑되지 않습니다(빌드되지 않음). 표시기는 M15에서 작동하지만 H1(M15 차트 상단)을 확인하고 전환하면 차트가 비어 있습니다. 몇 초 만에 업데이트합니다. 모든 버퍼가 그려집니다.

표시기 자체가 다른 시간대에 기록이 있는지 확인하고 나타날 때까지 계산을 보류하도록 하는 방법은 무엇입니까?

 
Igor Zakharov :

TesterHideIndicators(true);

정말 감사합니다 )))

 

다른 시간대에서 ATP 값을 가져올 수 없음:

ATR_handle= iATR ( _Symbol ,ATR_TF,ATR_Period);
CopyBuffer (ATR_handle, 0 ,time[i], 1 ,ATR);

현재에서 - 작동합니다. 선배부터 - 항상 0

 

선물에서 무기한 계약을 생성하는 방법은 무엇입니까? 기술 차트 분석을 위해?

사유: