Торговать из одного ОКНА по нескольким парам!

 
Добрый день!

СРАЗУ ОГОВРКА НЕ НА ТЕСТЕРЕ СТРАТЕГИЙ!!! а в реальном времени , пробую на ДЕМО

Можно ли без проблем торговать из одного окна по нескольким валютным парам!
какие могут быть при этом проблемы!
основна идея повесить на самый подвижный иструмент! золото или буйныйе валютные пары
проблема возникает не срабатывает
ошибки идут 138 - новые цены и еще 129 новая цена

непонятно как такие ошибки возможны !!!


стопы slippgae гонял как угодно проблема остается !

вопрос САМ В ТОМ !!!
что порочного в данном подходе в данной идее





вот примерынй код примитива который ьы открывал позицию по разным ВАЛЮТАМ
передаем в параметраx кроме всего прочего КОД валюты





static string sCurrency [5]; static int OP; static int Order_ID; static double mAsk; static double mBid; static string sSymbol; static int ErrCod; void init() { sCurrency [ 1] = "EURUSD"; sCurrency [ 2] = "USDCHF"; sCurrency [ 3] = "USDJPY"; sCurrency [ 4] = "GBPUSD"; sCurrency [ 5] = "AUDUSD"; OP = 0; } void start() { if (OP <= 3) { OP = OP + 1; ОткрытьПозицию( OP_SELL , 1 ,""); ОткрытьПозицию( OP_BUY , 2 ,""); ОткрытьПозицию( OP_BUY , 3 ,""); ОткрытьПозицию( OP_SELL , 4 ,""); } } int ОткрытьПозицию( int pTypeOper,int pCur ,string psComment) { sSymbol = sCurrency [ pCur ]; ErrCod = GetLastError(); // проверим ВДРУГ КОД НЕ ПУСТ! ErrCod = 0; // пока количество 1 начиная с 1 элемента ! в 0 сидит кол ордеров по валюте // mPoint = sCurrency_POINT [pCur]; // и т д mAsk = MarketInfo( sSymbol, MODE_ASK); // получаем курс этой самой ВАЛЮТЫ mAsk = MarketInfo( sSymbol, MODE_ASK); // получаем курс этой самой ВАЛЮТЫ /* ErrCod = GetLastError(); if (ErrCod != 0) { Print( "ASK "+sSymbol+" "+mAsk+" "+msgErrors(ErrCod)) ; return(-1); } */ // ВОТ ТУТ ОШИБКА БЫВАЕТ mBid = MarketInfo( sSymbol, MODE_BID ); // получаем курс этой самой ВАЛЮТЫ mBid = MarketInfo( sSymbol, MODE_BID ); // получаем курс этой самой ВАЛЮТЫ /* ErrCod = GetLastError(); { Print( "BID "+sSymbol+" "+mBid+" "+msgErrors(ErrCod)) ; return(-1); } */ // ВОТ ТУТ ОШИБКА БЫВАЕТ // SLIPPAGE допусти 10 - 20 !!! для гарантии :)) if ( pTypeOper == OP_SELL ) { Order_ID = OrderSend(sSymbol, pTypeOper , 0.1 , mAsk, 20 , 0,0, psComment, 0 , 0 ,Red); ErrCod = GetLastError(); if (ErrCod != 0) { Print("SELL "+ msgErrors(ErrCod)) ; return(-1); } } if ( pTypeOper == OP_BUY ) { Order_ID = OrderSend(sSymbol, pTypeOper , 0.1 , mBid, 20 , 0,0, psComment, 0 , 0 ,Red); ErrCod = GetLastError(); if (ErrCod != 0) { Print("BUY "+ msgErrors(ErrCod)) ; return(-1); } } ErrCod = 0; return( Order_ID); } string msgErrors(int error_code) { string strError; switch(error_code) { case 0: strError=error_code+" Нет ошибки "; break; case 1: strError=error_code+" Нет ошибки, но результат неизвестен "; break; case 2: strError=error_code+" Общая ошибка "; break; case 3: strError=error_code+" Неправильные параметры "; break; case 4: strError=error_code+" Торговый сервер занят "; break; case 5: strError=error_code+" Старая версия клиентского терминала "; break; case 6: strError=error_code+" Нет связи с торговым сервером "; break; case 7: strError=error_code+" Недостаточно прав "; break; case 8: strError=error_code+" Слишком частые запросы "; break; case 9: strError=error_code+" Недопустимая операция нарушающая функционирование сервера "; break; case 64: strError=error_code+" Счет заблокирован "; break; case 65: strError=error_code+" Неправильный номер счета "; break; case 128: strError=error_code+" Истек срок ожидания совершения сделки "; break; case 129: strError=error_code+" Неправильная цена "; break; case 130: strError=error_code+" Неправильные стопы "; break; case 131: strError=error_code+" Неправильный объем "; break; case 132: strError=error_code+" Рынок закрыт "; break; case 133: strError=error_code+" Торговля запрещена "; break; case 134: strError=error_code+" Недостаточно денег для совершения операции "; break; case 135: strError=error_code+" Цена изменилась "; break; case 136: strError=error_code+" Нет цен "; break; case 137: strError=error_code+" Брокер занят "; break; case 138: strError=error_code+" Новые цены "; break; case 139: strError=error_code+" Ордер заблокирован и уже обрабатывается "; break; case 140: strError=error_code+" Разрешена только покупка "; break; case 141: strError=error_code+" Слишком много запросов "; break; case 145: strError=error_code+" Модификация запрещена, так как ордер слишком близок к рынку "; break; case 146: strError=error_code+" Подсистема торговли занята "; break; case 147: strError=error_code+" Использование даты истечения ордера запрещено брокером "; break; case 4000: strError=error_code+" Нет ошибки "; break; case 4001: strError=error_code+" Неправильный указатель функции "; break; case 4002: strError=error_code+" Индекс массива - вне диапазона "; break; case 4003: strError=error_code+" Нет памяти для стека функций "; break; case 4004: strError=error_code+" Переполнение стека после рекурсивного вызова "; break; case 4005: strError=error_code+" На стеке нет памяти для передачи параметров "; break; case 4006: strError=error_code+" Нет памяти для строкового параметра "; break; case 4007: strError=error_code+" Нет памяти для временной строки "; break; case 4008: strError=error_code+" Неинициализированная строка "; break; case 4009: strError=error_code+" Неинициализированная строка в массиве "; break; case 4010: strError=error_code+" Нет памяти для строкового массива "; break; case 4011: strError=error_code+" Слишком длинная строка "; break; case 4012: strError=error_code+" Остаток от деления на ноль "; break; case 4013: strError=error_code+" Деление на ноль "; break; case 4014: strError=error_code+" Неизвестная команда "; break; case 4015: strError=error_code+" Неправильный переход "; break; case 4016: strError=error_code+" Неинициализированный массив "; break; case 4017: strError=error_code+" Вызовы DLL не разрешены "; break; case 4018: strError=error_code+" Невозможно загрузить библиотеку "; break; case 4019: strError=error_code+" Невозможно вызвать функцию "; break; case 4020: strError=error_code+" Вызовы внешних библиотечных функций не разрешены "; break; case 4021: strError=error_code+" Недостаточно памяти для строки, возвращаемой из функции "; break; case 4022: strError=error_code+" Система занята "; break; case 4050: strError=error_code+" Неправильное количество параметров функции "; break; case 4051: strError=error_code+" Недопустимое значение параметра функции "; break; case 4052: strError=error_code+" Внутренняя ошибка строковой функции "; break; case 4053: strError=error_code+" Ошибка массива "; break; case 4054: strError=error_code+" Неправильное использование массива-таймсерии "; break; case 4055: strError=error_code+" Ошибка пользовательского индикатора "; break; case 4056: strError=error_code+" Массивы несовместимы "; break; case 4057: strError=error_code+" Ошибка обработки глобальныех переменных "; break; case 4058: strError=error_code+" Глобальная переменная не обнаружена "; break; case 4059: strError=error_code+" Функция не разрешена в тестовом режиме "; break; case 4060: strError=error_code+" Функция не подтверждена "; break; case 4061: strError=error_code+" Ошибка отправки почты "; break; case 4062: strError=error_code+" Ожидается параметр типа string "; break; case 4063: strError=error_code+" Ожидается параметр типа integer "; break; case 4064: strError=error_code+" Ожидается параметр типа double "; break; case 4065: strError=error_code+" В качестве параметра ожидается массив "; break; case 4066: strError=error_code+" Запрошенные исторические данные в состоянии обновления "; break; case 4067: strError=error_code+" Ошибка при выполнении торговой операции "; break; case 4099: strError=error_code+" Конец файла "; break; case 4100: strError=error_code+" Ошибка при работе с файлом "; break; case 4101: strError=error_code+" Неправильное имя файла "; break; case 4102: strError=error_code+" Слишком много открытых файлов "; break; case 4103: strError=error_code+" Невозможно открыть файл "; break; case 4104: strError=error_code+" Несовместимый режим доступа к файлу "; break; case 4105: strError=error_code+" Ни один ордер не выбран "; break; case 4106: strError=error_code+" Неизвестный символ "; break; case 4107: strError=error_code+" Неправильный параметр цены для торговой функции "; break; case 4108: strError=error_code+" Неверный номер тикета "; break; case 4109: strErrorspan
 
А пробовал подкачать хистори?
 
Может сначала размерность sCurrency [] объявить ?
 
Rosh:
Может сначала размерность sCurrency [] объявить ?
Дык, она (размерность) объявлена, но неправильно индексы используются в функции init(). Элементы массивов индексируются с нуля.
 
KimIV:
Rosh:
Может сначала размерность sCurrency [] объявить ?
Дык, она (размерность) объявлена, но неправильно индексы используются в функции init(). Элементы массивов индексируются с нуля.
А-а-а-а-а ... Вон оно че.
 
Rosh:
А-а-а-а-а ... Вон оно че.
Хорош прикалываться, будто сам не знаешь :-) кхе-хе
 
С ИНДЕКСАМИ МАССИВАМИ ВСЕ ХОРОШО

ну с нуля можно а с 1 тоже никто не запрещает :) главное извлекать верно


Ошибку не заметил сам!

вот оно !!!

if ( pTypeOper == OP_SELL ) { Order_ID = OrderSend(sSymbol, pTypeOper , 0.1 , [i][b]mAsk[/b],[/i] 20 , 0,0, psComment, 0 , 0 ,Red); ErrCod = GetLastError(); if (ErrCod != 0) { Print("SELL "+ msgErrors(ErrCod)) ; return(-1); } } if ( pTypeOper == OP_BUY ) { Order_ID = OrderSend(sSymbol, pTypeOper , 0.1 ,[i][b] mBid[/b],[/i] 20 , 0,0, psComment, 0 , 0 ,Red); ErrCod = GetLastError(); if (ErrCod != 0) { Print("BUY "+ msgErrors(ErrCod)) ; return(-1); } }



ПОПРАВИЛ И ВСЕ ПОШЛО!!! :-)

if ( pTypeOper == OP_SELL )
{
Order_ID = OrderSend(sSymbol, pTypeOper , 0.1 , mBid, 20 , 0,0, psComment, 0 , 0 ,Red);
ErrCod = GetLastError();
if (ErrCod != 0)
{
Print("SELL "+ msgErrors(ErrCod)) ;
return(-1);
}
}
if ( pTypeOper == OP_BUY )
{
Order_ID = OrderSend(sSymbol, pTypeOper , 0.1 , mAsk, 20 , 0,0, psComment, 0 , 0 ,Red);
ErrCod = GetLastError();
if (ErrCod != 0)
{
Print("BUY "+ msgErrors(ErrCod)) ;
return(-1);
}
}
 
Itso:
А пробовал подкачать хистори?
ИСТОРИЯ МНЕ ЗАЧЕМ ?
я же в РЕАЛЬНОМ ВРЕМЕНИ НА ДЕМО :)))

на ТЕСТЕРЕ СТРАТЕГИЙ такой код работать будет только по той валюте на которую станет ТЕСТЕР!
интересно когда разработчики исправят этот недостаток! если вообще будут исправлять