описываю алгоритм моей стратегии
на дневном графике (одна свеча один день) по закрытию текущего бара выставляются ордера на Buy и Sel, в советнике должно быть предусмотрен режим выставления ордеров либо по HIGH-LOW, либо по Open-Close,так же должен задаваться отступ на пример 10 пунктов от HIGH и LOW или от Open-Close. Так же должно быть доступно выставление объемов лотов, тейки и стопы. И еще если вдруг после срабатывания ордера рынок не пошел в нужном направлении и сработал стоп, на следующий день выставляются лоты объёмом в два раза больше (так же объем должен задаваться в настройках советника). А так же наличие трейлинг стопа так же задаться в настройках и его уровень. Возможность запуска на разных парах с одного счета. Возможность установки ордера в безубыто.
Ну, Ваши требования к Вашему будущему советнику вполне ясны. А проблема-то в чём?
P.S.
Насколько я понял ситуацию, Если за день ни кто не подез в код советника, которого Вы приложили к посту, то вряд ли уже кто-то будет его править. Значит выход у Вас такой - либо подождать ещё какое-то время - мож желающие так-и появятся. Если этого не произойдёт, то сделать кода самостоятельно. Как я Вам и сказал, помочь - помогут. Но вот делать вместо Вас будут вряд ли.
Перед блоком инициализации объявляем целочисленную переменную. Например, int MyBars;
В блоке инициализации присваиваем ей значение числа свеч на графике. MyBars=Bars;
В старте советника пишем
if(MyBars<Bars){// появилась новая свеча // блок установки ордеров // после этого блока пришем MyBars=Bars;// это чтоб ордера ставились только 1 раз }Поскольку советник работает на Д1, то запускать его в работу нужно в конце дня. Советник на первом тике новой свечи обнаружит, что день закончился (число баров стало на 1 больше) и установит ордера. А по прошествии ещё суток, он снова обнаружит, что число свеч на грфике увеличилось на 1 и снова поставит свои отложки.
ок спасибо попробую, хотелось бы узнать ваше мнение насчет стратегии, я вот думаю ввести анализ в систему введя в нее такой алгоритм как отслеживание тренда по скользящей средней, и если например рынок находиться под скользящей средней и на рынке медвежье настроение то ордер на Buy отодвигается еще дальше например на 50 пунктов таким образом фильтруя ложные срабатывания
Довольно большое расстояние может оказаться между двумя стартовыми ордерами. С таким же успехом можно встать утром, провести горизонтальные линии через ночные торги Азии, получив более узкий канал, поставить на эти уровни ордера со стопами на хай/лоу дня или несколько дальше.
Самое активное движение происходит когда в рынке не 1, а два региона.
int MyBars; // Перед блоком инициализации объявляем целочисленную переменную. Например, int MyBars;
int start()
{
MyBars=Bars;
int total, cnt, OpenOrder, DefOrder, pos;double max, min, SL;
datetime time;
//----
// Устанавливаем время выставления ордеров для различных валютных пар
if(Symbol()=="USDCAD")
time=StrToTime("12:00");
else
time=StrToTime("09:00");
// Считаем количество открытых и отложенных ордеров по текущему инструменту
total=OrdersTotal();
OpenOrder=0;
DefOrder=0;
for(cnt=0;cnt<total;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
OpenOrder++; // количество открытых ордеров
else
DefOrder++; // количество закрытых ордеров
}
}
// Проверяем не пора ли устанавливать отложенные ордера
if(TimeHour(CurTime())==TimeHour(time) && TimeMinute(CurTime())<5 && OpenOrder==0 && DefOrder==0)
{
total=24*60/Period()+1;
max=High[0];
min=Low[0];
for(pos=0; pos<total; pos++)
{
if (TimeDayOfYear(Time[pos])==TimeDayOfYear(CurTime()))
{
if(High[pos]>max)
max=High[pos]; // Дневной экстремум
if(Low[pos]<min)
min=Low[pos]; // Дневной экстремум
}
}
OrderSend(Symbol(),OP_BUYSTOP,Lots,max+Order_Point*Point,3,max-(SL_Point-Order_Point)*Point,0,"BUY Scalping",16384,0,CLR_NONE);
OrderSend(Symbol(),OP_SELLSTOP,Lots,min-Order_Point*Point,3,min+(SL_Point-Order_Point)*Point,0,"SELL Scalping",16384,0,CLR_NONE);
}
А как ввести выбор открытия по дневному High или Open я так полагаю необходимо ввести в начале extern bool HL_OC=0; //где "0" это открытие по Huy а 1 по Open и ввести условие если переменная HL_OC равна 0 то открываем по Huy и Low если переменная равна 1 то открываем по Open и Close.
Простите за мою не грамотность но я только начинаю осваивать язык.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Открытие отложенных ордеров позиций на Bay и на Sel по закрытию дневной свечи.
Возможность задать отступ от начала свечи.
Возможность открытия отложенных ордеров либо по Hig-Low либо по Open-Close.!!!!
В случае ошибки и просадки открыть на следующий день позиции в два раза большего объема, чем в убыточный день итд по нарастающей.
Возможность установки объема, уровней тейка и стопа, а так же наличие трейлинг стопа так же задаться в настройках и его уровень.
Возможность запуска на разных парах с одного счета.
Возможность установки ордера в безубыток
вот пример готового но он не совсем то что нужно, помогите изменить его пожалйста!!!