//+------------------------------------------------------------------+ //| VVI-bars.mq4 | //| Copyright 2013, VVI (daesher) | //| Version 0.0.1 | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, VVI" #property link "" //Советник на трёх возрастающих/убывающих барах. Предполагается, что следующий, если и не продолжит тенденцию, то пойдёт в нужном //направлении. // Сырой, содержит много "хламового" кода. Может показать положительные результаты на H1 (USD/JPY) и H4 (Eur/USD). //Я не "сишник", а паскалист, так что отдельные фрагменты покажутся другим странными и смешными. //--- input parameters extern double Lot=0.1; //extern int MinDiff = 10; //Минимальная разница на поинтах на тике - в пунктах/пипсах //extern double MinDiffMul = 2; //Во сколько раз эта разница должна увеличиться на сл. тике extern int StopLoss = 250;//subj extern bool AutoSL = true; // Если включён, "лось" выставляется по предыдущему бару extern double AutoSLCoeff = 1.2;//Коэффициент к автоматическому "лосю" - по отношению к предыдущему бару //extern int Trail1 = 15; //extern int Trail1To = 50; //extern double Trail = 15;//Усложнённый трейлинг-стоп на второй стадии. Столько процентов от гипотетически возможного //extern int Seconds_Wait = 10; //При открытии ордера пропускать не менее данного числа секунд, чтобы игнорировать "шум". // профита можно просадить, прежде чем закрыть ордер. extern int Magic = 0xBACE1; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } double abs(double v) { if (v < 0) {return(-v);} else {return(v);} } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ //Функции, не используемые в советнике, но они могут быть полезны, например, в другом /* int Trailer(double x,double y, double z) { //Искусственный лось if ((y-z)>=StopLoss*Point) return(true); if (x<=y) return(false); if (z<=y) return(false); if ((x-y)Trail1*Point); } else return(((x-z)/(x-y)*100)>Trail); } */ int OldBars; int start() { int IsOrder = false; int IsCurr; double B1,B2,B3, SL; if (OldBars == Bars) return(0); OldBars = Bars; for (int i=0; iMax) Max = Bid;*/ } if (OrderType()==OP_SELL) { //if (Trailer(-Min,-Opened,-Ask)==true) OrderClose(OrderTicket(),Lot,Ask,30,Red); /*else if (Ask