Я сейчас проверил кодом. 1234==2 это ложь. Действительно, сравниваются числа. Что это за надпись тогда? И получается тогда, что эта функция не может вернуть тройку, если и fok и ioc доступны?
Может быть и 2, тогда функция вернёт 3. НО¡¡¡¡¡ Это нетипичная ситуация. Учитывая что вариантов только 3, то может быть 1, 2 или сумма 1+2. Именно сумма, а не третий вариант. Поэтому проверка с помощью побитовой операции может дать ответ только на вопрос: Можно-ли применить ту или иную политику заполнения.
Это побитовые операции и они чуток не так проверяются как вы это представляете. Конкретно вот такая строка
Да уж все раз по пять объяснили. Вам надо с себя начать - признать, что вы чего-то не понимаете, а не в мире кто-то ошибается и особенно в справке.
Может в справке и нет ошибки, но оно написана непонятно (может только для меня). Как Я уже сказал, проверил кодом, и сейчас этот вопрос отпал. Мне в этой ветке говорили, что функция
SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
может вернуть 3.
Если она вернет 3, то вот такой код не сработает, верно?
bool CTrade::SetTypeFillingBySymbol(conststring symbol)
{
//--- get possible filling policy types by symboluint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)
{
m_type_filling=ORDER_FILLING_FOK;
return(true);
}
if((filling&SYMBOL_FILLING_IOC)==SYMBOL_FILLING_IOC)
{
m_type_filling=ORDER_FILLING_IOC;
return(true);
}
//---return(false);
}
Может в справке и нет ошибки, но оно написана непонятно (может только для меня). Как Я уже сказал, проверил кодом, и сейчас этот вопрос отпал. Мне в этой ветке говорили, что функция
может вернуть 3.
Если она вернет 3, то вот такой код не сработает, верно?
Если SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) вернет 3, то код вернет true
Может в справке и нет ошибки, но оно написана непонятно (может только для меня). Как Я уже сказал, проверил кодом, и сейчас этот вопрос отпал. Мне в этой ветке говорили, что функция
может вернуть 3.
Если она вернет 3, то вот такой код не сработает, верно?
Я вам ещё раз пытаюсь показать написанное на второй странице вашей темы
Может быть и 2, тогда функция вернёт 3. НО¡¡¡¡¡ Это нетипичная ситуация. Учитывая что вариантов только 3, то может быть 1, 2 или сумма 1+2. Именно сумма, а не третий вариант. Поэтому проверка с помощью побитовой операции может дать ответ только на вопрос: Можно-ли применить ту или иную политику заполнения.
попытайтесь внимательно прочесть что написано. Функция SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
может вернуть 1 что соответствует SYMBOL_FILLING_FOK
может вернуть 2 что соответствует SYMBOL_FILLING_IOC
и может вернуть 3 что соответствует СУММЕSYMBOL_FILLING_FOK + SYMBOL_FILLING_IOC
Распечатайте значения флагов SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC
если 1234==2 это ложь, этот код нерабочий.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
возвращает политику исполнения.
Alexey Viktorov, 2020.07.18 19:46
Может быть и 2, тогда функция вернёт 3. НО¡¡¡¡¡ Это нетипичная ситуация. Учитывая что вариантов только 3, то может быть 1, 2 или сумма 1+2. Именно сумма, а не третий вариант. Поэтому проверка с помощью побитовой операции может дать ответ только на вопрос: Можно-ли применить ту или иную политику заполнения.Это побитовые операции и они чуток не так проверяются как вы это представляете. Конкретно вот такая строка
читается примерно так:
Если переменная (filling сдвинутая на SYMBOL_FILLING_FOK бит) равна значению SYMBOL_FILLING_FOK
Если я самоучка, не правильно насочинял меня кто-то из более опытных поправят.Нет, они не ошиблись. Противоречия тоже нет. Просто есть что-то, чего вы не понимаете и упорно не хотите это понять.
Это побитовые операции и они чуток не так проверяются как вы это представляете. Конкретно вот такая строка
читается примерно так:
Если переменная (filling сдвинутая на SYMBOL_FILLING_FOK бит) равна значению SYMBOL_FILLING_FOK
Если я самоучка, не правильно насочинял меня кто-то из более опытных поправят.Нет, я хочу понять. Объясните пожалуйста еще раз.
Да уж все раз по пять объяснили. Вам надо с себя начать - признать, что вы чего-то не понимаете, а не в мире кто-то ошибается и особенно в справке.
Да уж все раз по пять объяснили. Вам надо с себя начать - признать, что вы чего-то не понимаете, а не в мире кто-то ошибается и особенно в справке.
Может в справке и нет ошибки, но оно написана непонятно (может только для меня). Как Я уже сказал, проверил кодом, и сейчас этот вопрос отпал. Мне в этой ветке говорили, что функция
может вернуть 3.
Если она вернет 3, то вот такой код не сработает, верно?
Может в справке и нет ошибки, но оно написана непонятно (может только для меня). Как Я уже сказал, проверил кодом, и сейчас этот вопрос отпал. Мне в этой ветке говорили, что функция
может вернуть 3.
Если она вернет 3, то вот такой код не сработает, верно?
Если SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) вернет 3, то код вернет true
Может в справке и нет ошибки, но оно написана непонятно (может только для меня). Как Я уже сказал, проверил кодом, и сейчас этот вопрос отпал. Мне в этой ветке говорили, что функция
может вернуть 3.
Если она вернет 3, то вот такой код не сработает, верно?
Я вам ещё раз пытаюсь показать написанное на второй странице вашей темы
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
возвращает политику исполнения.
Alexey Viktorov, 2020.07.18 19:46
Может быть и 2, тогда функция вернёт 3. НО¡¡¡¡¡ Это нетипичная ситуация. Учитывая что вариантов только 3, то может быть 1, 2 или сумма 1+2. Именно сумма, а не третий вариант. Поэтому проверка с помощью побитовой операции может дать ответ только на вопрос: Можно-ли применить ту или иную политику заполнения.попытайтесь внимательно прочесть что написано. Функция SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
Распечатайте значения флагов SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC
Просто напишите
Что вы увидите¿¿¿¿
Если SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) вернет 3, то код вернет true