ну в принципе сама стратегия очень длиная и сложная, и ее описывать нет смысла, это 1 пунк создать цикл тобиш мне надо найти чтото вместо тотал==1, что не открывал позы не сотвецтвующие запросу, тобиш если закрывается по ст то .........открывам 1, если закрылся по......... тп открывам 2, условие отсуцтвие ордера в рынке, вот и все,
ну в принципе сама стратегия очень длиная и сложная, и ее описывать нет смысла, это 1 пунк создать цикл тобиш мне надо найти чтото вместо тотал==1, что не открывал позы не сотвецтвующие запросу, тобиш если закрывается по ст то .........открывам 1, если закрылся по......... тп открывам 2, условие отсуцтвие ордера в рынке, вот и все,
Тогда Вам просто не подходит функция Игоря которую Вы используете. Вам нужна функция которая будет возвращать тип последнего закрытого ордера и почему (тп или сл) он был закрыт. А не возвращать причину последнего закрытия ордера определенного типа. Сейчас чего-нибудь попробую придумать...
Тогда Вам просто не подходит функция Игоря которую Вы используете. Вам нужна функция которая будет возвращать тип последнего закрытого ордера и почему (тп или сл) он был закрыт. А не возвращать причину последнего закрытия ордера определенного типа. Сейчас чего-нибудь попробую придумать...
ну если у вас есть чтото похоже на климоское, чтоб возращяло значение по чем закрылся ордер только последний, буду вам оч блогодарен
Попробуйте такую функцию в связке с функцией Игоря:
//+----------------------------------------------------------------------------+//| Версия : 30.03.2011 |//| Описание : Возвращает тип последней закрытой позиции |//| если Buy 1 , если Sell -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| symbol - наименование инструмента |//| magic - MagicNumber |//+----------------------------------------------------------------------------+int LastCloseDeal(string symbol, int magic)
{
int lastclosetime=-1;
int lastcloseticket=-1;
int lastdealtype=0;
for (int i=0; i<OrdersHistoryTotal(); i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderSymbol()==symbol || OrderMagicNumber()==magic)
{
if (lastclosetime<OrderCloseTime())
{
lastclosetime=OrderCloseTime();
lastcloseticket=OrderTicket();
}
}
}
if (OrderSelect(lastcloseticket, SELECT_BY_TICKET, MODE_HISTORY))
{
if (OrderType()==OP_BUY) lastdealtype=1;
if (OrderType()==OP_SELL) lastdealtype=-1;
}
return(lastdealtype);
}
Привет, пожалуйста помогите реализовать выставление виртуальных стоплосов в заданных пунктах, буду по точнее: советник должен вместо отправки данных о новом SL просто хранить их в переменных (или гденидь еще), и тралить, тралить, тралить а когда цена дойдет до определенного уровня (цены) посылать сигнал в ДЦ о закытии ордера, (этакой виртуальный трейлинг стоп с виртуальным стоплосом). Иными словами эксперт включающий трейлинг стоп на невидимом уровне для сервера ДЦ от 1 пункта... реальноли это?
Centuriy: Привет, пожалуйста помогите реализовать выставление виртуальных стоплосов в заданных пунктах, буду по точнее: советник должен вместо отправки данных о новом SL просто хранить их в переменных (или гденидь еще), и тралить, тралить, тралить а когда цена дойдет до определенного уровня (цены) посылать сигнал в ДЦ о закытии ордера, (этакой виртуальный трейлинг стоп с виртуальным стоплосом). Иными словами эксперт включающий трейлинг стоп на невидимом уровне для сервера ДЦ от 1 пункта... реальноли это?
Да реально конечно. Перебираете открытые ордера, у них цена открытия, например у нас есть Buy открытый по цене Х, виртуальный стоплосс Y пунктов, поэтому если текущая цена Z < = X-Y*Point ордер закрыть. Конечно надо еще учитывать спреды, а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д.
Воспользуйтесь поиском по "виртуальный стоп", "виртуальный стоплосс" и т.д.
Да реально конечно. Перебираете открытые ордера, у них цена открытия, например у нас есть Buy открытый по цене Х, виртуальный стоплосс Y пунктов, поэтому если текущая цена Z < = X-Y*Point ордер закрыть. Конечно надо еще учитывать спреды, а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д.
Воспользуйтесь поиском по "виртуальный стоп", "виртуальный стоплосс" и т.д.
Думаю, без мало-мальски оформленного собственного учёта ордеров тут не обойтись.
Создать собственный массив ордеров и в нём хранить все необходимые данные по вирт.стопам.
Да реально конечно. Перебираете открытые ордера, у них цена открытия, например у нас есть Buy открытый по цене Х, виртуальный стоплосс Y пунктов, поэтому если текущая цена Z < = X-Y*Point ордер закрыть. Конечно надо еще учитывать спреды, а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д.
Воспользуйтесь поиском по "виртуальный стоп", "виртуальный стоплосс" и т.д.
Спасибо за ответ, вот только проблема не в стоплосе а в самом трале (трейлингстопе), почему нужен виртуальный, потому что хочу тралить мин 1 пункт, а при каждом тике отправлять в ДЦ команду ОрдерМодифи это хулиганство ИМХО ))
"а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д."
а можно об это по подробней? где хранить, как вызывать, думаю это должны быть переменные или я ошибаюсь...
ну в принципе сама стратегия очень длиная и сложная, и ее описывать нет смысла, это 1 пунк создать цикл тобиш мне надо найти чтото вместо тотал==1, что не открывал позы не сотвецтвующие запросу, тобиш если закрывается по ст то .........открывам 1, если закрылся по......... тп открывам 2, условие отсуцтвие ордера в рынке, вот и все,
ну в принципе сама стратегия очень длиная и сложная, и ее описывать нет смысла, это 1 пунк создать цикл тобиш мне надо найти чтото вместо тотал==1, что не открывал позы не сотвецтвующие запросу, тобиш если закрывается по ст то .........открывам 1, если закрылся по......... тп открывам 2, условие отсуцтвие ордера в рынке, вот и все,
Тогда Вам просто не подходит функция Игоря которую Вы используете. Вам нужна функция которая будет возвращать тип последнего закрытого ордера и почему (тп или сл) он был закрыт. А не возвращать причину последнего закрытия ордера определенного типа. Сейчас чего-нибудь попробую придумать...
Тогда Вам просто не подходит функция Игоря которую Вы используете. Вам нужна функция которая будет возвращать тип последнего закрытого ордера и почему (тп или сл) он был закрыт. А не возвращать причину последнего закрытия ордера определенного типа. Сейчас чего-нибудь попробую придумать...
ну если у вас есть чтото похоже на климоское, чтоб возращяло значение по чем закрылся ордер только последний, буду вам оч блогодарен
Попробуйте такую функцию в связке с функцией Игоря:
Тогда Ваш кусок кода должен выглядеть так:
Тогда Ваш кусок кода должен выглядеть так:
спс попробую
Привет, пожалуйста помогите реализовать выставление виртуальных стоплосов в заданных пунктах, буду по точнее: советник должен вместо отправки данных о новом SL просто хранить их в переменных (или гденидь еще), и тралить, тралить, тралить а когда цена дойдет до определенного уровня (цены) посылать сигнал в ДЦ о закытии ордера, (этакой виртуальный трейлинг стоп с виртуальным стоплосом). Иными словами эксперт включающий трейлинг стоп на невидимом уровне для сервера ДЦ от 1 пункта... реальноли это?
Да реально конечно. Перебираете открытые ордера, у них цена открытия, например у нас есть Buy открытый по цене Х, виртуальный стоплосс Y пунктов, поэтому если текущая цена Z < = X-Y*Point ордер закрыть. Конечно надо еще учитывать спреды, а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д.
Воспользуйтесь поиском по "виртуальный стоп", "виртуальный стоплосс" и т.д.
Да реально конечно. Перебираете открытые ордера, у них цена открытия, например у нас есть Buy открытый по цене Х, виртуальный стоплосс Y пунктов, поэтому если текущая цена Z < = X-Y*Point ордер закрыть. Конечно надо еще учитывать спреды, а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д.
Воспользуйтесь поиском по "виртуальный стоп", "виртуальный стоплосс" и т.д.
Думаю, без мало-мальски оформленного собственного учёта ордеров тут не обойтись.
Создать собственный массив ордеров и в нём хранить все необходимые данные по вирт.стопам.
Да реально конечно. Перебираете открытые ордера, у них цена открытия, например у нас есть Buy открытый по цене Х, виртуальный стоплосс Y пунктов, поэтому если текущая цена Z < = X-Y*Point ордер закрыть. Конечно надо еще учитывать спреды, а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д.
Воспользуйтесь поиском по "виртуальный стоп", "виртуальный стоплосс" и т.д.
Спасибо за ответ, вот только проблема не в стоплосе а в самом трале (трейлингстопе), почему нужен виртуальный, потому что хочу тралить мин 1 пункт, а при каждом тике отправлять в ДЦ команду ОрдерМодифи это хулиганство ИМХО ))
"а если стоплосс не постоянный, а расчетный, то рассчитаное значение надо где-то надежно хранить и т.д."
а можно об это по подробней? где хранить, как вызывать, думаю это должны быть переменные или я ошибаюсь...