[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 372
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день еще раз!
Получил ответы от двух добрых людей,но к сожалению ни один из вариантов не подошел.
Уважаемые профи, подскажите,пожалуйста, еще .Повторюсь, Пишу советник и вот затупил на след.моменте:
По определенной схеме открываются ордера, они могут закрыться в день открытия,а могут еще 3 дня гулять в рынке.
Я не могу понять, как прописать так, чтобы я мог найти ордер,который гуляет уже в течение 3 дней, и закрыть его, при этом не закрывая ордера, открытый позже него.
Схема открытия для всех ордеров одинаковая. Присваиваю всем магики след. образом: Magic_s =Magic_s+1.
Варинат нужен,чтобы система автоматически находила и закрывала этот ордер, т.к. есть необходимость протестировать систему на исторических данных
Пожалуйста, если кто-то знает как решить эту задачу - напишите ответ. Буду Вам очень благодарен :)
Понял. Спасибо большое. Как вариант хороший,единственное при таком варианте не могу протестить систему по историческим данным. Вот и хотел автоматически как-то прописать. Если будут еще какие-то варианты-напишите пожалукйста
Для тестирования на истории надо определиться с условием закрытия позиции. Профит/лосс или время жизни позиции, напр. не более 3 дней. Это можно сделать модифицировав datetime expiration ордера/позиции с помощью OrderModify.
Да,получается у нас будет условия закрытия - это время жизни позиции,все правильно, не более 3 дней. Почитал про OrderModify, пока не понял до конца. Попробую вечером разобраться. Еще раз большое спасибо за ответ,очень оперативный:)
Сорри, чт не по языку, но очень нужно, мож кто знает.
В виндовсе 7 некоторые файлы отказались открываться. Жму "Открыть с помощью...", выбираю программу и она НЕ появляется в списке выбора программ. Мож кто знает, как убрать это ограничение? На ХР этого небыло. Долбанная семёрка уже весь мозг съела :(
Подозреваю, что нужно вычистить реестр. Конкретно, не открывается двойным кликом формат FB2. CoolReader запускаю и всё нормально. им открывается. двойным кликом запускать файл формата fb2 не хочет.
Запустил поиск по реестру утиллитой JV-16 (всегда ею пользовался) - дык она нашла столько строк реестра, где упоминается fb2, что ужас просто - убивать аж боязно. Что делать-то? Поиск в гугле ни чего не дал :(
Приветствую!
помогите переделать код. Код не новый, но что то у меня не получается.
вот код:
Как не старался все не получается сделать, что бы открывался цикл при достижении минусовой сделки, а после при достижении положительной сделки, если была минусовая, то уменьшал минусовой баланс на прибыль закрытую последнего ордера, который больше нуля. То есть, если ордер закрылся в минус, то начинаем работать, если следующая сделка по прибыли больше убытка, то закрываемся, если по следующей сделки закрылись в плюс, но этот плюс не больше минуса, по предыдущим ордерам, то этот плюс от минусовуем от отрицательного баланса, и следующий ордер сравниваем с новым показателям, который уже уже меньше, так как мы перед этим закрылись в минус. Закрываемся по тралу. поэтомк и допустим положительный балнс.
Сорри, чт не по языку, но очень нужно, мож кто знает.
В виндовсе 7 некоторые файлы отказались открываться. Жму "Открыть с помощью...", выбираю программу и она НЕ появляется в списке выбора программ. Мож кто знает, как убрать это ограничение? На ХР этого небыло. Долбанная семёрка уже весь мозг съела :(
Подозреваю, что нужно вычистить реестр. Конкретно, не открывается двойным кликом формат FB2. CoolReader запускаю и всё нормально. им открывается. двойным кликом запускать файл формата fb2 не хочет.
Запустил поиск по реестру утиллитой JV-16 (всегда ею пользовался) - дык она нашла столько строк реестра, где упоминается fb2, что ужас просто - убивать аж боязно. Что делать-то? Поиск в гугле ни чего не дал :(
Пуск - Все программы - Программы по умолчанию - Задать сопоставления
Сорри, чт не по языку, но очень нужно, мож кто знает.
В виндовсе 7 некоторые файлы отказались открываться. Жму "Открыть с помощью...", выбираю программу и она НЕ появляется в списке выбора программ. Мож кто знает, как убрать это ограничение? На ХР этого небыло. Долбанная семёрка уже весь мозг съела :(
Подозреваю, что нужно вычистить реестр. Конкретно, не открывается двойным кликом формат FB2. CoolReader запускаю и всё нормально. им открывается. двойным кликом запускать файл формата fb2 не хочет.
Запустил поиск по реестру утиллитой JV-16 (всегда ею пользовался) - дык она нашла столько строк реестра, где упоминается fb2, что ужас просто - убивать аж боязно. Что делать-то? Поиск в гугле ни чего не дал :(
Ребята...помогите кто знает!!!!
У меня появилась проблема и я не представляю как ее можно решить постараюсь объяснить.
Значит в коде есть, который я выложил, есть 2 функции
//+------------------------------------------------------------------+
//| подготовить массив тикетов для закрытия |
//+------------------------------------------------------------------+
void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9])
{
int size=ArrayRange(arrayTickets,0);
//----
if (size==0) return;
int i,type,ticket,closeSize;
for (i=0;i<size;i++)
{
type=arrayTickets[i][1];
// если тип ордера не рыночный, то пропускаем
if (type>OP_SELL) continue;
if (Revers) // перевернем тип рыночного ордера
{
if (type==OP_BUY) type=OP_SELL; else type=OP_BUY;
}
// тут решаем для каждого открытого ордера его судьбу
// оставить в рынке или добавить в массив на закрытие
if (type==OP_BUY)
{
//
// код разрешающий оставить покупку
// как пример
if (signal==OP_BUY) continue;
}
if (type==OP_SELL)
{
//
// код разрешающий оставить продажу
// как пример
if (signal==OP_SELL) continue;
}
closeSize=ArrayRange(ticketsClose,0);
ArrayResize(ticketsClose,closeSize+1);
ArrayResize(lots,closeSize+1);
ticketsClose[closeSize][0] = arrayTickets[i][0]; // # тикета
ticketsClose[closeSize][1] = arrayTickets[i][1]; // тип ордера
// здесь укажем сколько лотов нужно закрыть
lots[closeSize] = arrayTickets[i][2]; // закрываемый объем
// можно закрывать частично, тогда нужно переписать строку сверху
}
//----
return;
}
//+------------------------------------------------------------------+
//| Закрывает ордера с указанными тикетами |
//+------------------------------------------------------------------+
void CloseMarketOrders(int ticketsArray[][2], double lotsArray[])
{
//----
int i,size=ArrayRange(ticketsArray,0);
if (size==0) return;
int ticket,type;
double lots;
bool res;
int total=OrdersTotal();
for (i=0;i<size;i++)
{
ticket = ticketsArray[i][0];
type = ticketsArray[i][1];
lots = lotsArray[i];
RefreshRates(); // на всякий случай обновим сведения о рыночном окружении
// блок закрытия покупок
if (type==OP_BUY)
{
res = OrderClose(ticket,lots,Bid,Slippage,Orange);
if (!res)
{
Print("Не удалось закрыть ордер в покупку #",ticket,"! Ошибка №",GetLastError());
// дальнейшая обработка ошибки, написать самостоятельно
}
}
// блок закрытия продаж
if (type==OP_SELL)
{
res = OrderClose(ticket,lots,Ask,Slippage,Orange);
if (!res)
{
Print("Не удалось закрыть ордер в продажу #",ticket,"! Ошибка №",GetLastError());
// дальнейшая обработка ошибки, написать самостоятельно
}
}
}
//----
return;
}
В функции void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9]) нужно поставить условие после которого решиться оставлять ордер или закрывать его...
Пробовал ставить условия но ничего не получается....
Может кто нибуть посмотрит и кажет есть ли в этих функциях ошибка или это я накасячил....
Пуск - Все программы - Программы по умолчанию - Задать сопоставления
Эта операция приводит к окну выбора программ. Указываем прогу и она там не появляется.