Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сказать есть чего, но как-то не особенно хочется) Одну ошибку я вижу, а именно отсутствие фигурных скобок после объявления цикла, а может это и не ошибка, при некоторых условиях может и работать, причин может быть несколько... Фрагмент кода не является законченым, это как принести колесо и спросить почему машина не едет, да и для вставки кода есть пипка SRC. А лучше выложить законченую демонстрацию неработоспособности.
может кто-то поможет исправить код, эксперты по mql где вы?, сам не могу разобраться в чем ошибка
нечего сказать?
Очень правокационно вы пишете zan, а ведь помощи просите.
может кто-то поможет исправить код, эксперты по mql где вы?, сам не могу разобраться в чем ошибка
Не знаю как на счёт экспертов MQL4, а как новичёк новичку помочь готов, если вы сами согласны на подобную помощь.
Что бы проще было помочь, разделите комментариями функции советника: Торговые условия, трейлинг стоп и т.д.
Хотя бы ту версию, которую вы изначально выложили.
У меня такой вопрос. Написал небольшой советник и прогнал его на тесте, однако оказалось - слишком много левых сделок совершил МТС. И тогда начал его упрощать, что бы узреть суть проблемы. Дошёл до того, что осталось всего одно условие на открытие всего одного ордера. Казалось бы, чего может быть проще, запускаешь и смотришь на свой единственный ордер на всей истории, радуешься. Но как показывает практика ордеров оказалась не одна сотня. :( И вообще задействован не вся история, а только непонятная часть из середины. Вопрос: Почему?
Как-то слышал где-то на форумах, что такой глюк возможен из-за неочищенного кеша или типа того. Т.е. МТ4 как бы не подчищает за собой хвосты и потом при последующих тестах ориентируется на собственный неподтёртый мусор. Так ли это? И как с этим бороться?
Тут, наверное, нужно уточнить, что писать МТС я начал недавно и предыдущие релизы как-то таких проблем не вызывали. Возможно, из-за обесточивания компьютера во время работы произошёл данный глюк, т.к. не была корректно завершена работа программы. ХЕЗ? :)
Очень правокационно вы пишете zan, а ведь помощи просите.
Не знаю как на счёт экспертов MQL4, а как новичёк новичку помочь готов, если вы сами согласны на подобную помощь.
Что бы проще было помочь, разделите комментариями функции советника: Торговые условия, трейлинг стоп и т.д.
Хотя бы ту версию, которую вы изначально выложили.
Вот описание
1. Совершаем покупку/продажу по сигналам MACD&Stochastic. Сигнал макди взят из советника MACD SAMPLE который идет с метатрейдер4,в этом же советнике МА заменен на стохастик, т.е. сигналом служит персечение макди ( основной с сигнальной линией) и также и в стохастике.--основной ордер
2. если мы находимся в плюсе и после того как советник совершил сделку,
if(total>0 && total<MaxLots)
{
for(cnt=0;cnt<total;cnt++)
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
cenaoppos=OrderOpenPrice();//цена открытия
lot=OrderLots();//ордер
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //позиция на покупку
{
Cena=Ask;//цена
if((cenaoppos+pips*Point)<Cena)//если цена открытия +пипс()*пунктам меньше цены, то
{
OrderSend(Symbol(),OP_BUY,lot,Ask,3,Bid-sl,Ask+TakeProfit*Point,0,Green);//покупаем еще один лот
return(0);
}
}
else
{
Cena=Bid;//цена
if((cenaoppos-pips*Point)>Cena)//если цена открытия-пипс *пунктам больше цены, то//----
{
OrderSend(Symbol(),OP_SELL,lot,Bid,3,Ask+sl,Bid-TakeProfit*Point,"macd sample",16384,0,Red); //продаем еще один лот
return(0);
}
}
}
}
этот код должен совершать доливку,т.е. совершаем еще сделку(такую же сделку продажа /покупка) в добавок к той которая у нас была.
но открывает добавочный ордер после выполнения этого условия:
if((cenaoppos+pips*Point)<Cena) -при покупке
if((cenaoppos-pips*Point)>Cena)- при продаже
3. следующая функция ORDERMODIFY должен модифицировать все совершенные сделки : основную и добавочная, пр выполнения этих условий:
if(Bid-OrderOpenPrice()>Point*TrailingStop)//если цена-цена открытия больше траилинга в пунктах
{
if(OrderStopLoss()<Bid-Point*TrailingStop)//если стоплосс меньше цена-траилинг в пунктах( цены открытия)
_____________________________________________________________________________________________________________________%%
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))//если цена открытия-цена больше траилинга в пунктах
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))//если стоплосс больше цена+траилинг в пунктах(цены открытия)
{
функция ORDERMODIFY работает правильно, не работает только функция добавочного ордера.
Заранее благодарен тем кто откликнулся.
У меня такой вопрос. Написал небольшой советник и прогнал его на тесте, однако оказалось - слишком много левых сделок совершил МТС. И тогда начал его упрощать, что бы узреть суть проблемы. Дошёл до того, что осталось всего одно условие на открытие всего одного ордера. Казалось бы, чего может быть проще, запускаешь и смотришь на свой единственный ордер на всей истории, радуешься. Но как показывает практика ордеров оказалась не одна сотня. :( И вообще задействован не вся история, а только непонятная часть из середины. Вопрос: Почему?
Как-то слышал где-то на форумах, что такой глюк возможен из-за неочищенного кеша или типа того. Т.е. МТ4 как бы не подчищает за собой хвосты и потом при последующих тестах ориентируется на собственный неподтёртый мусор. Так ли это? И как с этим бороться?
Тут, наверное, нужно уточнить, что писать МТС я начал недавно и предыдущие релизы как-то таких проблем не вызывали. Возможно, из-за обесточивания компьютера во время работы произошёл данный глюк, т.к. не была корректно завершена работа программы. ХЕЗ? :)
чем смогу тем помогу, выкладывай.
Вот описание
......
функция ORDERMODIFY работает правильно, не работает только функция добавочного ордера.
Заранее благодарен тем кто откликнулся.
А где, собственно, функции ? Какие параметры, как вызываются ? Что пишет в предупреждениях компилятор ? Потом, в приведенном куске кода Вы работаете только с одним ордером с номером (total-1)- это верно, то есть так и задумано ? (Думаю, что нет).
Вам же посоветовали - если хотите помощи :
1. желательно весь неработающий код - здесь телепатов нет и дописывать за Вас логику врядли кто будет.
2. Для представления кодов программ есть тэг SRC - воспользуйтесь. Фоматировать за Вас текст для понимания логики и возможных ошибок реализации тож удовольствие сомнительное.
Успехов.
вот продолжение кода
мне кажется ошибка в этом коде
Вот здесь Вы работаете только с одним ордером
Все это :будет выполняться только для ордера с номером Поскольку, отработав цикл
оставит выбранным только последний ордер.
Это так задумано или пропущена открывающая скобка после
?
И, к стати, в блоке трала
вставьте проверку "символа"
, а то рискуете "влепить" стоп от фунта в евру или наоборот.