Но открывает сделки в тестере на каждойминутной свече. инф. в этой ссылке http://clip2net.com/s/2T98Y
А мне нужно что бы открывала один ордер на пятиминутной свече,но не на каждой.
А только если текущая пятиминутка будет > или = 30 пунктов .(от цены открытия до ее максимума)
Т.е открыть один рыночный ордер на тридцатом пункте от цены открытия нулевой=текущей пятиминутки.
А если текущая пятиминутка от цены открытия до максимума меньше 30 пунктов,то рыночный ордер не открывать.
Просто бросьте эксперт на пятиминутный график, будет как вы написали.
Или замените везде в коде Open[0] на iOpen(Symbol (), PERIOD_M5, 0), тогда будет работать с любого графика.
И еще у Вас вторым условием стоит - если цена закрытия текущей пятиминутки >= цене открытия ордера.
Не, Close[0] - это текущая цена закрытия 0 бара, то есть просто текущая цена. Можно было написать просто Bid, результат тот же.
Т.е. ордеров будет немного , я посчитал в екселе, с 1999 года - чуть больше 3000 по евро доллару в обе стороны.
Переходим на следующую пятиминутку и если она,т.е. текущая пятиминутка > или = 30 пунктов,то открываемся на тридцатом пункте,если меньше - переходим на следующую пятиминутку ...и так до конца графика.
Но вся фишка в том,- по приблизительным подсчетам ,большая часть пятиминуток ,которые > или = 30 пунктов гораздо чаще пролетают 15 пунктов чем закрываются по стопу в 30 п.Т.е.соотношение между ними таково,что в целом график баланса будет идти вверх.Хочу проверить эту идею на тестере.
У Вас в условии стоит - если нет открытых ордеров
Но по моей системе могут образоваться две пятиминутки с вышеописанными параметрами подряд и если ордер от предыдущей пятиминутки не закроется - тогда на второй пятиминутки ордер не откроется.
А мне нужно,что бы один ордер открывался на каждой пятиминутке с вышеописанными параметрами независимо от того есть или нет в торговле ордера.
Ок, тогда поменяем условие. Итого выходит:
int start()
{
double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;
double SL=NormalizeDouble (Price-300*Point, Digits);
double TP=NormalizeDouble (Price+150*Point, Digits);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
}
if (OrdesTotal()==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем бареif (Bid>=Price) //если текущая цена доползла до цены открытияint Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
}
Diubakin: Вы тестовый советник для ф-ции в тестере смотрели? Закрывает именно макс. убыток с макс. профитом независимо от того сколько там ордеров - два или двадцать.
Сергей! Пока вопрос о функции оставляю открытым, т.к. завтра вставлю в Ваш тестовый советник ещё несколько функций, чтобы провести чистый эксперимент. Смотрел в визуальном режиме, и почти всё время двойное закрытие происходит последним, раньше закрываются по СЛ и ТП, т.е. не из чего выбирать. Убрал Стопы и Тэйки, чтобы было из чего выбирать. Завтра покажу Ваш советник со всеми добавочными функциями и комментами! Сами сможете увидеть, как работает функция. Очень хочу, чтобы показало, что я ошибся! Если окажусь прав, постараюсь добиться желаемого! До завтра!
простите . помогите пожалуйста. я как двоечник списываю программу с .некоторыми изменениями. мне компилятор выдает ошибку: '(' - function definition unexpected F:\forex\MetaTrader NordFX\experts\ia.mq4 (305, 16) .
что это значит?
- пытался убрать этот кусок программы - тоже пишет на следующем.
- пытался оставить этот кусок без изменения -результат тот же (та же ошибка)
простите . помогите пожалуйста. я как двоечник списываю программу с .некоторыми изменениями. мне компилятор выдает ошибку: '(' - function definition unexpected F:\forex\MetaTrader NordFX\experts\ia.mq4 (305, 16) .
что это значит?
- пытался убрать этот кусок программы - тоже пишет на следующем.
- пытался оставить этот кусок без изменения -результат тот же (та же ошибка)
Большое спасибо за помощь.
Но открывает сделки в тестере на каждой минутной свече. инф. в этой ссылке http://clip2net.com/s/2T98Y
А мне нужно что бы открывала один ордер на пятиминутной свече,но не на каждой.
А только если текущая пятиминутка будет > или = 30 пунктов .(от цены открытия до ее максимума)
Т.е открыть один рыночный ордер на тридцатом пункте от цены открытия нулевой=текущей пятиминутки.А если текущая пятиминутка от цены открытия до максимума меньше 30 пунктов,то рыночный ордер не открывать.
Просто бросьте эксперт на пятиминутный график, будет как вы написали.
Или замените везде в коде Open[0] на iOpen(Symbol (), PERIOD_M5, 0), тогда будет работать с любого графика.
И еще у Вас вторым условием стоит - если цена закрытия текущей пятиминутки >= цене открытия ордера.
Т.е. ордеров будет немного , я посчитал в екселе, с 1999 года - чуть больше 3000 по евро доллару в обе стороны.
Переходим на следующую пятиминутку и если она,т.е. текущая пятиминутка > или = 30 пунктов,то открываемся на тридцатом пункте,если меньше - переходим на следующую пятиминутку ...и так до конца графика.
Но вся фишка в том,- по приблизительным подсчетам ,большая часть пятиминуток ,которые > или = 30 пунктов гораздо чаще пролетают 15 пунктов чем закрываются по стопу в 30 п.Т.е.соотношение между ними таково,что в целом график баланса будет идти вверх.Хочу проверить эту идею на тестере.
У Вас в условии стоит - если нет открытых ордеров
Но по моей системе могут образоваться две пятиминутки с вышеописанными параметрами подряд и если ордер от предыдущей пятиминутки не закроется - тогда на второй пятиминутки ордер не откроется.
А мне нужно,что бы один ордер открывался на каждой пятиминутке с вышеописанными параметрами независимо от того есть или нет в торговле ордера.
Ок, тогда поменяем условие. Итого выходит:
Интересует именно советник, объекты - самому что ли свечу рисовать?
Принцип понять можно:
Вы тестовый советник для ф-ции в тестере смотрели? Закрывает именно макс. убыток с макс. профитом независимо от того сколько там ордеров - два или двадцать.
Просто бросьте эксперт на пятиминутный график, будет как вы написали.
Или замените везде в коде Open[0] на iOpen(Symbol (), PERIOD_M5, 0), тогда будет работать с любого графика.
Не, Close[0] - это текущая цена закрытия 0 бара, то есть просто текущая цена. Можно было написать просто Bid, результат тот же.Ок, тогда поменяем условие. Итого выходит:
Большое Вам спасибо за помощь.Все ОК. Но......
1. На некоторых пятиминутках открывается более 1 ордера.
2. Некоторые ордера закрываются по стоп-приказам,цена которых отличается от той,что прописана в коде.
Во вложенном файле пометил данные ордера.
Просто бросьте эксперт на пятиминутный график, будет как вы написали.
Или замените везде в коде Open[0] на iOpen(Symbol (), PERIOD_M5, 0), тогда будет работать с любого графика.
Не, Close[0] - это текущая цена закрытия 0 бара, то есть просто текущая цена. Можно было написать просто Bid, результат тот же.Ок, тогда поменяем условие. Итого выходит:
Большое Вам спасибо за помощь.Все ОК. Но......
1. На некоторых пятиминутках открывается более 1 ордера.
2. Некоторые ордера закрываются по стоп-приказам,цена которых отличается от той,что прописана в коде.
Инф. о вышеуказанных ордерах в этой ссылке
http://clip2net.com/s/2Tfym
простите . помогите пожалуйста. я как двоечник списываю программу с .некоторыми изменениями. мне компилятор выдает ошибку: '(' - function definition unexpected F:\forex\MetaTrader NordFX\experts\ia.mq4 (305, 16) .
что это значит?
- пытался убрать этот кусок программы - тоже пишет на следующем.
- пытался оставить этот кусок без изменения -результат тот же (та же ошибка)
на родной программе компиляция проходит успешно.
Принцип понять можно:
Благодарю!
простите . помогите пожалуйста. я как двоечник списываю программу с .некоторыми изменениями. мне компилятор выдает ошибку: '(' - function definition unexpected F:\forex\MetaTrader NordFX\experts\ia.mq4 (305, 16) .
что это значит?
- пытался убрать этот кусок программы - тоже пишет на следующем.
- пытался оставить этот кусок без изменения -результат тот же (та же ошибка)
на родной программе компиляция проходит успешно.
Вам сюда
Судя по ошибке - какую-то функцию определяете внутри другой функции. Все функции должны быть определены на глобальном уровне
Нужна помощь.
Ищу любые функцию или скрипт, умеющие делать скрин экрана в некий момент, например, при открытии/закрытии позы.
Когда не надо, то и дело попадались на глаза, а теперь найти не могу.
ХЕЛП!Нужна помощь.
Ищу любые функцию или скрипт, умеющие делать скрин экрана в некий момент, например, при открытии/закрытии позы.
Когда не надо, то и дело попадались на глаза, а теперь найти не могу.
ХЕЛП!