//+------------------------------------------------------------------+ //| "Casino.mq4" | //| | //+------------------------------------------------------------------+ #property copyright "mich99@o2.pl" extern bool BUY = true; extern bool SELL = true; extern double Bet = 400; extern int x1 = 97; extern int x2 = 77; extern double lots = 0.1; extern bool MM = false; extern double maxlot = 4; extern double Risk = 0.01; extern int mn = 5431937; extern int maxOrdersPerPair = 999; static int prevtime = 0; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { HideTestIndicators(TRUE); if (Time[0] == prevtime) return(0); prevtime = Time[0]; if (! IsTradeAllowed()) { again(); return(0); } int total = OrdersTotal(); for (int i = 0; i < total; i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn) { return(0); } } int ticket = -1; if (BUY && orderscntb() 0 ) {//MACD > 0 ticket = OrderSend(Symbol(), OP_BUY, LotSize(), Ask, 1, Ask - Bet * Point, Ask + Bet * Point, WindowExpertName(), mn, 0, Blue); if (ticket < 0) { again(); } } if (SELL && orderscnts()< maxOrdersPerPair && ACD() < 0 ) {//MACD < 0 ticket = OrderSend(Symbol(), OP_SELL, LotSize(), Bid, 1, Bid + Bet * Point, Bid - Bet * Point, WindowExpertName(), mn, 0, Red); if (ticket < 0) { again(); } } return(0); } //+------------------------------------------------------------------+ //| calculate perciptrons value | //+------------------------------------------------------------------+ /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// double ACD() { double Hd=iHigh(NULL,1440,1)+x1*Point; double Ld=iLow(NULL,1440,1)-x2*Point; if( Open[1]Hd ) { return(-1); } if( Open[1]>Ld && Open[0] 0) { result = lots; losses = 0; } else { result = result * k; losses++; } } } result = NormalizeDouble(result, round); if (result > maxlot) { result = maxlot; } if (result < minlot) { mn = mn + 1; } RefreshRates(); return(result); }