Навскидку:
И тоже самое для селл, только бид и аск поменять местами ;)
double max_bid = 0.0; int start() { if ( Bid - max_bid > 0.0 ) { max_bid = Bid; } if ( max_bid - Bid >= 2*Point ) { OrderClose(....); } ... if (...) { OrderSend(OP_BUY); max_bid = Ask; } }
И тоже самое для селл, только бид и аск поменять местами ;)
Мдя...
Вставте пожалуйста код трала в этого эксперта.
Вставте пожалуйста код трала в этого эксперта.
#property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/" double a, b; extern int Shift = 2; extern double Lot=0.1; bool x; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ //---------------------------------------------------------------------------- int start(){ if(Bid-iOpen(Symbol(),PERIOD_H1,0)>0)x=true; else x=false; if (Ask-a>=Shift*Point && x==false) {OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+18*Point,0,"eurusd",0,0,CLR_NONE);max_ask=Ask;} if (b-Bid>=Shift*Point && x==true) {OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-18*Point,0,"eurusd",0,0,CLR_NONE);max_bid=Bid;} a=Ask; b=Bid; return(0);}
extern int Shift = 2; extern double Lot=0.1; bool x; double a, b, max_bid = 0.0, min_ask = 0.0; int buy = 0, sell = 0; int start() { if ( Bid - max_bid > 0.0 ) { max_bid = Bid; } if ( min_ask - Ask > 0.0 ) { min_ask = Ask; } if(Bid-iOpen(Symbol(),PERIOD_H1,0)>0)x=true; else x=false; if (Ask-a>=Shift*Point && x==false) {OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+18*Point,0,"eurusd",123,0,CLR_NONE);min_ask=Bid;} if (b-Bid>=Shift*Point && x==true) {OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-18*Point,0,"eurusd",123,0,CLR_NONE);max_bid=Ask;} a=Ask; b=Bid; int _GetLastError, _OrdersTotal = OrdersTotal(); for ( int z = _OrdersTotal - 1; z >= 0; z -- ) { if ( !OrderSelect( z, SELECT_BY_POS, MODE_TRADES ) ) { _GetLastError = GetLastError(); Print( "OrderSelect( ", z, ", SELECT_BY_POS, MODE_TRADES ) - Error #", _GetLastError ); continue; } if ( OrderMagicNumber() != 123 || OrderSymbol() != _Symbol ) { continue; } if ( OrderType() == OP_BUY ) { if ( Bid - OrderOpenPrice() >= 0 && max_bid - Bid >= 2*Point ) { OrderClose( OrderTicket(), OrderLots(), Bid, 3, CLR_NONE ); continue; } } if ( OrderType() == OP_SELL ) { if ( OrderOpenPrice() - Ask >= 0 && Ask - min_ask >= 2*Point ) { OrderClose( OrderTicket(), OrderLots(), Ask, 3, CLR_NONE ); continue; } } } return(0);}
Спасибо.
Когда-то и меня посещала подобная идея, закрывать прибыльные
ордера при откате на некоторое значение, я брал процент от максимума.
Слил весь демо-счет. Прибыль, в вашем случае, 1-2 пункта, а убыток
по соп-лосу пунктов 18.
Почему 1-2 пункта?
В тестере максимальная прибыльная сделка была 190 пунктов,при этом максимальная убыточная 18 пунктов.
При этом средняя прибыльная 27 пунктов.
В тестере максимальная прибыльная сделка была 190 пунктов,при этом максимальная убыточная 18 пунктов.
При этом средняя прибыльная 27 пунктов.
А вы когда-нибудь видели в реальности скачек цены в 190 пунктов?!!
Тестер, это такая жутко тупая вещь, если у него появляется бар,
у которого цена выхода – цена входа = 190 пунктов, то он вам и сгенерит
тик в 190 пунктов. И еще, таких экспертов тестить надо на периоде
M1 (все тики) и то результат будет грубый.
Согласен что тестер вещь тупая и 190 он может и загнул конечно,
но 50-100 пунктов,а то и больше,во время новостей обычное явление.
Это в лучшем случае раз в неделю и то не больше 20 пунктов, они
не смогут окупить убыток. Поставь на демо-счет хотя бы на сутки
и посмотри результат, 1-3 пункта с ордера и таких ордеров будет
много и несколько ордеров со стоп-лосами, убыток от которых
перекроет все. Хочешь своего эксперта дам?
А еще лучше изначально смотреть не в сторону стандартного трейлинга
(читай тупое таскание стопа за текущей ценой), а подумать о трейлинге
основанном на информации новых СФОРМИРОВАННЫХ баров (т.е. срабатывает на открытии нового бара на основании
уже сформированных баров). Способы возможны различные: уровни последних фракталов,
уровни параболика (Parabolic SAR), трейлинг работающий от собственного первоначального стоп-лосса по принципу параболика, уровень среднего истинного
диапазона (ATR) с коэффициентом ну и прочее. В общем идея надеюсь
понятна, сделать дискретный трейлинг адекватный (адаптирующийся)
к графику цены.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сделать простой трал проблем нет.
Мне надо вот что:ордер с профитом в два пункта,эксперт подтягивает стоплосс на безубыток,профит 4 пункта-стоплосс 2 и т.д.,
но так у многих ДЦ это невозможно,то надо чтобы эти данные эксперт писал допустим в массив,то есть трал без
фактического изменения стоплосса с шагом минимум в 2 пункта.
Если не не трудно то напишите пожалуйста этот код.
Заранее благодарен.