Alexander Bereznyak : 도구의 속성을 보고 중지 수준이 0일 수 있습니다. 그런 다음 정규화를 시도합니다.
예, 브로커가 A*****i인 경우 중지 수준은 종종 0입니다. 그러나 동시에 지원팀에서는 올바른 정지 수준을 얻으려면 2 스프레드 값을 사용해야 한다고 말합니다. 따라서 대부분의 정지 수준 사례를 다루는 코드는 다음과 같습니다.
tickSize = SymbolInfoDouble (symbol, SYMBOL_TRADE_TICK_SIZE );
ask = SymbolInfoDouble (symbol, SYMBOL_ASK );
bid = SymbolInfoDouble (symbol, SYMBOL_BID );
spread = ask - bid; // Заметьте - спред получаем не через MarketInfo, и не через SymbolInfoInteger
digits = ( int ) SymbolInfoInteger (symbol, SYMBOL_DIGITS );
point = SymbolInfoDouble (symbol, SYMBOL_POINT );
stopLevel = MarketInfo(symbol, MODE_STOPLEVEL) * point; // До сих пор встречаются случаи, когда SymbolInfoInteger и MarketInfo выдают разные значения. MarketInfo пока ближе к истинеif (stopLevel == 0 )
{
if (!isECN) // isECN - признак ECN-счета, на котором Stop Level действительно равен 0
topLevel = NormalizeDouble ( 2 * spread, digits);
}
else
stopLevel = NormalizeDouble (stopLevel + tickSize, digits); // Сознательное увеличение размера Stop Level на один тик, чтобы постоянно не натыкаться на ошибку 130.
정규화를 사용하지 않았을 때 이 오류가 발생했습니다. 이미 그것에 대해 썼습니다.
도구의 속성을 보고 중지 수준이 0일 수 있습니다. 그런 다음 정규화를 시도합니다.
예, 브로커가 A*****i인 경우 중지 수준은 종종 0입니다. 그러나 동시에 지원팀에서는 올바른 정지 수준을 얻으려면 2 스프레드 값을 사용해야 한다고 말합니다. 따라서 대부분의 정지 수준 사례를 다루는 코드는 다음과 같습니다.
도구의 속성을 보고 중지 수준이 0일 수 있습니다. 그런 다음 정규화를 시도합니다.
정규화를 사용하지 않았을 때 이 오류가 발생했습니다. 이미 그것에 대해 썼습니다.
예, 브로커가 A*****i인 경우 중지 수준은 종종 0입니다. 그러나 동시에 정확한 정지 수준을 얻으려면 2 스프레드 값을 사용해야 한다고 지원팀이 작성합니다. 따라서 대부분의 정지 수준 사례를 다루는 코드는 다음과 같습니다.
이 부엌에서 나가..
확실하거나 확실하다
오늘 거래의 한 조각 모든 주문은 정확히 동일한 알고리즘에 따라 열립니다. 조건은 항상 동일합니다. 그럼에도 불구하고 부러운 빈도로 오류가 발생합니다. 어디에서나 정류장은 항상 정류장 수준보다 크고 지연은 항상 현재 가격에서 정류장 수준보다 큰 거리에 배치됩니다.
그리고 다른 브로커의 데모 계정에서는 이 시간 동안 단 한 건의 오류도 발생하지 않았습니다...