Меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд. Возвращает true в случае удачного помещения команды в очередь графика, иначе false. Чтобы...
안녕하세요, 알아낼 수 있도록 도와주세요. 나는 지정가 주문을 열지만 시장 가격으로 스크립트를 작성했습니다. 모든 것이 작동합니다. 제한을 시장 아래/위에서 설정하도록 변경하기로 결정했습니다. 반환 코드가 입찰하더라도 아무 일도 일어나지 않습니다. 서버 10009 및 GetLastError()는 0을 반환합니다. 코드:
voidOnStart ()
{ 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이 설정되지 않으면 가격 정규화도 아무 것도 제공하지 않습니다.
언뜻보기에는 프로그램에서 그래프를 다시 그리는 것이 당연해야하기 때문에 그러한 문제에 직면하게 될 것이라고 생각하지 않았습니다. 이런 점 에서 ChartRedraw() 함수의 목적은 불분명하다 ...
이것은 표시기가 아니라 그래픽 개체의 속성에 대한 변경 사항을 표시하기 위한 것입니다.
표시기에 눈금을 보내야 합니다. 그러면 표시기가 다시 그려집니다. 음.. 즉, 새 틱에서 해야 할 일을 합니다.
그리고 새 틱을 보내려면 옵션이 아닌 틱을 기다리거나 옵션이 아닌 RMB 차트 --> 새로 고침을 업데이트하거나 다음 매개변수와 함께 ChartSetSymbolPeriod() 함수를 사용해야 합니다. 현재 차트:
예를 들어 request.price가 설정된 경우: Ask-Point()*30이 설정되지 않으면 가격 정규화도 아무 것도 제공하지 않습니다.안녕하세요, 알아낼 수 있도록 도와주세요. 나는 지정가 주문을 열지만 시장 가격으로 스크립트를 작성했습니다. 모든 것이 작동합니다. 제한을 시장 아래/위에서 설정하도록 변경하기로 결정했습니다. 반환 코드가 입찰하더라도 아무 일도 일어나지 않습니다. 서버 10009 및 GetLastError ()는 0을 반환합니다. 코드:
이것은 표시기가 아니라 그래픽 개체의 속성에 대한 변경 사항을 표시하기 위한 것입니다.
표시기에 눈금을 보내야 합니다. 그러면 표시기가 다시 그려집니다. 음.. 즉, 새 틱에서 해야 할 일을 합니다.
그리고 새 틱을 보내려면 옵션이 아닌 틱을 기다리거나 옵션이 아닌 RMB 차트 --> 새로 고침을 업데이트하거나 다음 매개변수와 함께 ChartSetSymbolPeriod() 함수를 사용해야 합니다. 현재 차트:
Artyom, 감사합니다.
모든 것이 효과가 있었습니다. :)
시각적 테스트 중에 차트의 어드바이저에 사용된 모든 표시기를 비활성화하는 방법을 아는 사람이 있습니까?
TesterHideIndicators(true);
지표가 다른 기간에 작동할 준비가 되지 않았는지 확인하는 방법은 무엇입니까?
히스토리는 인접한 시간대에 대해 펌핑되지 않습니다(빌드되지 않음). 표시기는 M15에서 작동하지만 H1(M15 차트 상단)을 확인하고 전환하면 차트가 비어 있습니다. 몇 초 만에 업데이트합니다. 모든 버퍼가 그려집니다.
표시기 자체가 다른 시간대에 기록이 있는지 확인하고 나타날 때까지 계산을 보류하도록 하는 방법은 무엇입니까?
TesterHideIndicators(true);
정말 감사합니다 )))
다른 시간대에서 ATP 값을 가져올 수 없음:
현재에서 - 작동합니다. 선배부터 - 항상 0
선물에서 무기한 계약을 생성하는 방법은 무엇입니까? 기술 차트 분석을 위해?