По просьбам "писателей" Игрушка-перевертыш. После закрытия сделки открывается на новом баре в противоположную сторону
extern double Lots = 0.1; //размера лота при нулевом риске extern double MaximumRisk=5.0; //варьируемый размер риска extern int cmd=OP_BUY; //команда для первого входа extern int TP=200; //Тейкпрофит extern int SL=200; //Стоплосс extern int MagicNumber = 0; //Магическое число
Виктор, привет!
Такую игрушку и в руках подержать приятно. Такой простой и грамотный код редко теперь встретишь.
Даже захотелось с ним позаниматься и вот чего удалось подработать:
Если мы будем смотреть только последнюю сделку в истории, то можно избавиться от цикла:
int Signal() { OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)return(MathAbs(OrderType()-1)); return(-1); }
Весьма полезная игрушка! Очень замечательно с ее помощью подбирать оптимальные значения СЛ и ТП . И написана красиво . Спасибо!
По очередной просьбе следующая игрушка.
Но позиция открывается в туже сторону, если последняя сделка была прибыльной, и в противположную, если сделка была убыточной
Параметры те же самые
Это уже не игрушка. И не советник, а это уже индкатор. Полный аналог LSMA, но с другой скоростью расчетов
.FG писал (а):
Age Of Empires послажнее, но зато и стротигичиски поинтиреснея!!! Единственный минус - от Майкрасофт! :)
Ну это-ж надо так умудриться!!! Это - залёт, парень.
Виктор, хотел вам задать вопрос по коду. У вас встречается подобная конструкция:
static int prevtime=0; if(iTime(Symbol(),PERIOD_D1,0) == prevtime) return(0); prevtime = iTime(Symbol(),PERIOD_D1,0);Насколько я понимаю - это проверка в эксперте на фомирование нового бара. Не могли бы вы обьяснить зачем она нужна (думаю для того, чтобы открывать ордер только с приходом нового бара, но зачем, ведь с приходом нового бара Ask может сильно измениться, а с ним и сигнал на совершение сделки???)
Виктор, хотел вам задать вопрос по коду. У вас встречается подобная конструкция:
static int prevtime=0; if(iTime(Symbol(),PERIOD_D1,0) == prevtime) return(0); prevtime = iTime(Symbol(),PERIOD_D1,0);Насколько я понимаю - это проверка в эксперте на фомирование нового бара. Не могли бы вы обьяснить зачем она нужна (думаю для того, чтобы открывать ордер только с приходом нового бара, но зачем, ведь с приходом нового бара Ask может сильно измениться, а с ним и сигнал на совершение сделки???)
Заказчик просил по открытию бара, он такой вариант и получил.
Была бы другая задача, был бы другой вариант.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования