Создать список, каждый элемент которого состоит из пары тикетов (дочерний, родительский). Хранить на чарте в виде графических объектов, в файле или в базе данных.
И причём тут дочерний и родительский тикеты? Базу данных так точно применять в мкл4 не буду. По крайне мере, если не использовать те же нейросети, то это излишнее. А оные я не использую, т.к. подходы к торговле совсем другие.
Если у Вас выработаны критерии по разделению позиций на группы до открытия позиций, используйте самое надёжное, меджики, один общий на группу. Время открытия ордера в меджике можете Вы прочитать, эксперт нет. Комментарии не годятся!
Борис, Я выше написал как можно закинуть время открытия ордера в мэджик. Всё можно! Хотя это по-моему не самый лучший вариант реализации данной задачи. Как-раз поэтому я и решил поднять на форуме этот вопрос. Что-то то ли опыта не хватает, то ли я притормозил...
И у меджиков (в Вашем случае) один большой плюс - если по данному меджику все сделки закрыты, то его можно использовать повторно. Кодировать его не стоит. Просто использовать как счетчик позиций.
А какой может быть минус у мейджиков?
Комменты я так понимаю вообще не актуальны и их не резон использовать вообще?
Допустим я решил использовать мэджики как счётчик. Зададим цикл от 0 до 25, например. Больше пачек теоритически не бывает. Тогда как организовать подобную " раздачу " мэджиков?
В каком месте программы задаётся данный цикл перебора мэджиков? Я что-то мутно представляю это на практике..
Например, вот есть метод, который доливает дроблёный лот:
//+---------------------------------------------------------------------------------------------------------------------------------------+ //| Функция посылает ордер доливающий позицию | //+---------------------------------------------------------------------------------------------------------------------------------------+ void SendRefillOrder (Symbol_Properties& Sym, ENUM_OCCURENCE_SIGNAL fi_Signal) { double OOP = -1; int ticket = -1, type = -1; if (fi_Signal == SIGNAL_REFILL_BUY) { Print (__FUNCTION__, ":: Решение долить SIGNAL_BUY"); // Определяем наличие открытых позиций рядом с последний позицией, которую собираемся доливать if (g_iOTotal > 1) if (CPosInf.IsPosNearByThisOne (GSym, GPos, ANY_WARDS, g_ilastPosIndex, i_iStepAmongPositions, -1) == true) return; // Если убыток позиции превысил допустимое значение, ищем место, где будет доливать эту позицию... if ( (GPos[g_ilastPosIndex].dOpenPrice - Ask) < i_iStepAmongPositions * Sym.dPt ) { type = OP_BUYLIMIT; OOP = GPos[g_ilastPosIndex].dOpenPrice - i_iStepAmongPositions * Sym.dPt - Sym.dSpread; } else { type = OP_BUY; OOP = Ask; } double lot = CMM.GetLotIncreasedByCoefficient (GSym, i_dLots, i_dLotCoefficient, GPos[g_ilastPosIndex].dLots); if (lot > 0) ticket = COrdMan.fOrderSend (Sym, type, lot, ND (OOP), i_iSlippage, 0, 0, i_iMagic); if (ticket != -1) { g_dtLastBarTime = Time[0]; } } // if (fi_Signal == SIGNAL_REFILL_SELL) // Print (__FUNCTION__, ":: Решение долить SIGNAL_SELL"); }
Как мне сюда добавить мэджик, если он будет как Вы пишете через цикл по счётчику получаться?
Это понятно, что не методу решать. Но суть в том, что я не представляю, что является отправным моментов для задания мэджика на пачку.
Например, имеем ситуацию:
В понедельник или другой день, не важно...
1-ая поза открылась в 13.00, 1-ая поза открылась в 13.30, 1-ая поза открылась в 14.25, 1-ая поза открылась в 15.500 ... N-ая поза открылась в N-часов N-минут.
Дальше появился, скажем так локирующая поза или несколько локирующих поз. Как вариант, это могут быть отложки.
На следующий день:
происходить подобная картина, как в понедельник.
Как мне в процессе сделать так, что бы у каждой пачки были свои магики? Мне ж нужно это как-то спроектировать. Я не совсем представляю, во-первых, откуда брать сами мэджики, чтоб они были универсальными, а во-вторых, как задавать условие, что уже приходит время для нового мэджика.
shanty:
а во-вторых, как задавать условие, что уже приходит время для нового мэджика.
Можно создать два массива, в одном будут ордера в другом Локирующие ордера, и индекс в массиве локирующих ордеров пусть совпадает с индексом того ордера который он локирует, или если локирует несколько ордеров то пусть пишется в несколько индексов, как вариант.
вот простой вариант.
пачка 1 arrOrders[0][0]=ticket 156 arrLock[0][0]= arrOrders[0][1]=ticket 415 arrLock[0][1]=ticket 118 // локируем 1 ордер arrOrders[0][2]=ticket 161 arrLock[0][2]= пачка 2 arrOrders[1][0]=ticket 445 arrLock[1][0]=ticket 344 // локируем 2 ордера arrOrders[1][1]=ticket 844 arrLock[1][1]=ticket 644 arrOrders[1][2]=ticket 344 arrLock[1][2]=
Но лучше использовать массив структур в таком случае.
Или уйти в ООП написать класс "Пачка ордеров ))" и каждый раз при создании новой пачки создаётся "новая пачка" со своим набором ордеров, в этом же классе можно много всяких проверок написать для учёта контроля и.т.д.
Можно создать два массива
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужно реализовать задачу, чтоб сова смогла сама задавать признак определённой пачке ордеров на канкретном графике о принаблежность данной позиции к некоторой пачке позиций. Объясню по подробнее.
Например, совок торгует по какому-то алгоритму. Открывает одну или несколько поз(возможен вариант дробления позы не N-частей) по каждом сигналу и, если поза не сразу вышла в профит, локируем суммарную позу одной или несколькими позами локирующими.
Так вот. Таким пачек может быть несколько. Т.е. поза_1 - локирующая поза_1, поза_2 - локирующая поза_2... поза_N- локирующая поза_N. Задача стоит в том, чтоб как-то задавать признак того, что эта поза относится к первой пачке ордеров или к N-ой пачке ордеров. Я знаю точно, что раньше в момент начисления свопа комментарии у позы затирались или совсем или частично. Получается комментарии вообще бесполезная сущность.
Судя по всему есть вариант только работать с мэджиком. Опять-таки, мэджик у позиции именно мкл-4 имеет тип int, что на самом деле маловато, чтоб максимально упростить задачу. Тогда как вообще поступить в этой ситуации?
Я думал переводить дату и время открытия позиции + название графика + ТФ и приставку названия совка в цифровой вид по своей задумке.
Выходило бы типа такого варианта:
Если сегодня Дата: 01.11.2015. Время: 16.58
Мэджик может быть таким: 011120151658
Сюда можно добавить ещё рабочий таймфрейм + торговый инструмент и некоторый идентификатор совка.
Но так не хватить цифр для реализации.
Какие ещё варианты есть?