Обнаружилась такая неопределенность с type_filling: разрешен только один режим
string symbol = "EURUSD";
int flags = SymbolInfoInteger( symbol, SYMBOL_FILLING_MODE );
//разрешен только SYMBOL_FILLING_ALL_OR_NONE
при этом SendOrder размещает ордера одинаково успешно как с
MqlTradeRequest request;
request.type_filling = ORDER_FILLING_FOK; //соответствующий флаг разрешения 1
так и с
request.type_filling = ORDER_FILLING_RETURN; //соответствующий флаг разрешения 0
причем после успешного размещения фактическое свойство размещенного ордера ORDER_TYPE_FILLING всегда =ORDER_FILLING_RETURN, даже если в запросе было указано request.type_filling = ORDER_FILLING_FOK
MqlTradeResult result;
OrderSelect( result.order );
int tpAfter = OrderGetInteger( ORDER_TYPE_FILLING );
//tpAfter всегда = ORDER_FILLING_RETURN
По-моему несоответствие списка разрешенных режимов и фактическим свойствам ордера после размещения
void CStrategyMA::FitnessFunction(int chromos)
{
double res=0.0;
// Выбор символа (m_strategy_symbol) из масива используемых символов (m_name_symbols[]) количаством (m_count_symbols)// Пример: m_count_symbols = 1; m_name_symbols[0] = "EURUSD.e";
m_strategy_symbol = m_name_symbols[(int)MathRound(Colony[1][chromos]*(m_count_symbols-1))];
// Выбор периода из масива по индексу (от PERIOD_M5 (индекс - 5) до PERIOD_D1 (индекс - 19))// Для наглядности:// ENUM_TIMEFRAMES PERIOD_INDEX [22] = {PERIOD_CURRENT,// PERIOD_M1, PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M20,// PERIOD_M30,PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,PERIOD_H6,PERIOD_H8, PERIOD_H12,PERIOD_D1, PERIOD_W1,// PERIOD_MN1};
m_period = PERIOD_INDEX[(int)(MathRound(Colony[2][chromos]*5)+14)];
// Освобождаю дескриптор загруженого ранее индикатораIndicatorRelease(m_handle);
// Создаю новый индикатор с периодом - (int)(MathRound(Colony[3][chromos]*100)+1)// от 1 до 100
m_handle=iMA(m_strategy_symbol,(ENUM_TIMEFRAMES)m_period,(int)(MathRound(Colony[3][chromos]*100)+1),0,MODE_EMA,PRICE_CLOSE);
// Без использования Sleep(1000); - генерируется последующая ошибка при использовании в коде ф-ции: CopyBuffer// "ошибка доступа к историческим даным", хоть дескриптор и создан!?!?!?Sleep(1000);
if(m_handle<0)
{
Alert("Ошибка при создании индикатора MA - номер ошибки: ",GetLastError()," ",m_strategy_symbol," ",m_period);
} else
{
// Аналитический процес
res = HistoryCheckTradeConditions();
}
AmountStartsFF++;
Colony[0][chromos]=res;
}
При использовании даной функции возникает ошибка "2012.11.28 09:58:32 4194304 bytes not available", помогите понять, увеличил файл подкачки до 10 ГБт.
Также смущает необходимости использования Sleep(1000);, помогите разобратся, и понять суть.
A100: Обнаружилась такая неопределенность с type_filling: разрешен только один режимпри этом SendOrder размещает ордера одинаково успешно как стак и с
причем после успешного размещения фактическое свойство размещенного ордера ORDER_TYPE_FILLING всегда =ORDER_FILLING_RETURN, даже если в запросе было указано request.type_filling = ORDER_FILLING_FOK
По-моему несоответствие списка разрешенных режимов и фактическим свойствам ордера после размещения
Вот здесь я уже пытался разобраться с аналогичными вопросами: https://www.mql5.com/ru/forum/2248/page5#comment_197730 (два подряд сообщения). После этого появились какие-то изменения в справочных материалах. Но мне сам вопрос стал не интересен, поэтому что именно изменилось - сказать не могу. Посмотрите ещё руководство пользователя терминала. По-моему, там тоже обновили описание этих режимов.
1. Вставляйте код правильно.
2. А параметр m_period каким образом оптимизируется/подбирается? Т.е. чему равны его значения при вашей оптимизации?
На расплывчатый вопрос можно дать только такой же рапслывчатый ответ - Периоды графиков
интерисую Вашы коментарии по ошибке: " 2012.11.28 09:38:18 4194304 bytes not available "
интерисую Вашы коментарии по ошибке: " 2012.11.28 09:38:18 4194304 bytes not available "
Это идентификатор, который присваивает вашему ордеру исполняющая площадка - биржа.
Всем спасибо за ответы.
Обнаружилась такая неопределенность с type_filling: разрешен только один режим
при этом SendOrder размещает ордера одинаково успешно как стак и сrequest.type_filling = ORDER_FILLING_RETURN; //соответствующий флаг разрешения 0причем после успешного размещения фактическое свойство размещенного ордера ORDER_TYPE_FILLING всегда =ORDER_FILLING_RETURN, даже если в запросе было указано request.type_filling = ORDER_FILLING_FOK
По-моему несоответствие списка разрешенных режимов и фактическим свойствам ордера после размещения
tol64:
А уточните, пожалуйста, что имеется ввиду под внешней торговой системой, а то вдруг тоже неправильно понимаю.
Вы же сказали, что
tol64:
Да, только что специально внимательно понаблюдал за этим и в момент срабатывания ордера тоже в этом поле ничего не появляется.
Так проверка при биржевой торговле была или не была?
Не хватает памяти.
Спасибо.
Прошу помощи для анализа ситуации, следующий код:
При использовании даной функции возникает ошибка "2012.11.28 09:58:32 4194304 bytes not available", помогите понять, увеличил файл подкачки до 10 ГБт.
Также смущает необходимости использования Sleep(1000);, помогите разобратся, и понять суть.
причем после успешного размещения фактическое свойство размещенного ордера ORDER_TYPE_FILLING всегда =ORDER_FILLING_RETURN, даже если в запросе было указано request.type_filling = ORDER_FILLING_FOK
По-моему несоответствие списка разрешенных режимов и фактическим свойствам ордера после размещения
я так понял что использовал новое описание - старые
в описании отсутствуют, но еще подсвечиваются редактором