help - страница 2 12 Новый комментарий Forex Trader 2005.12.10 18:45 #11 а чё там должно было быть Forex Trader 2005.12.10 18:47 #12 сделай а я сам проверю Forex Trader 2005.12.10 18:54 #13 //+------------------------------------------------------------------+ //| Copyright 2005, Gordago Software Corp. | //| http://www.gordago.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2005, Gordago Software Corp." #property link "http://www.gordago.com" extern double lStopLoss = 12; extern double sStopLoss = 12; extern double lTakeProfit = 500; extern double sTakeProfit = 500; extern color clOpenBuy = Blue; extern color clCloseBuy = Aqua; extern color clOpenSell = Red; extern color clCloseSell = Violet; extern color clModiBuy = Blue; extern color clModiSell = Red; extern string Name_Expert = "Generate from Gordago"; extern int Slippage = 1; extern bool UseSound = False; extern string NameFileSound = "alert.wav"; extern int PauseTrade = 5; // Пауза между торгами в минутах extern double Lots = 25; int prevTimeTrade; void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start(){ if(Bars<100){ Print("bars less than 100"); return(0); } if(lStopLoss<10){ Print("StopLoss less than 10"); return(0); } if(lTakeProfit<10){ Print("TakeProfit less than 10"); return(0); } if(sStopLoss<10){ Print("StopLoss less than 10"); return(0); } if(sTakeProfit<10){ Print("TakeProfit less than 10"); return(0); } double diRSI0=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI1=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI2=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI3=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI4=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI5=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI6=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI7=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI8=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI9=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI10=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI11=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI12=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI13=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI14=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI15=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI16=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI17=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI18=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI19=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI20=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI21=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI22=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI23=iRSI(NULL,1440,14,PRICE_CLOSE,1); if(AccountFreeMargin()<(1000*Lots)){ Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (!ExistPositions()){ if ((diRSI0>30 && diRSI1<30) || (diRSI2>50 && diRSI3<50) || (diRSI4>70 && diRSI5<70)){ if (isCompletOfPause()) OpenBuy(); return(0); } if ((diRSI6<70 && diRSI7>70) || (diRSI8<50 && diRSI9>50) || (diRSI10<30 && diRSI11>30)){ if (isCompletOfPause()) OpenSell(); return(0); } } if (ExistPositions()){ if(OrderType()==OP_BUY){ if ((diRSI12<30 && diRSI13>30) || (diRSI14<50 && diRSI15>50) || (diRSI16<70 && diRSI17>70)){ CloseBuy(); return(0); } } if(OrderType()==OP_SELL){ if ((diRSI18>70 && diRSI19<70) || (diRSI20>50 && diRSI21<50) || (diRSI22>30 && diRSI23<30)){ CloseSell(); return(0); } } } return (0); } //+------------------------------------------------------------------+ //| Возвращает флаг окончания паузы в торговле | //+------------------------------------------------------------------+ bool isCompletOfPause() { if (CurTime()-prevTimeTrade>=60*PauseTrade) return(True); else return(False); } bool ExistPositions() { for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { return(True); } } } return(false); } void ModifyStopLoss(double ldStopLoss) { bool fm; fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE); if (fm && UseSound) PlaySound(NameFileSound); } void CloseBuy() { bool fc; fc=OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clCloseBuy); if (fc) prevTimeTrade=CurTime(); if (fc && UseSound) PlaySound(NameFileSound); } void CloseSell() { bool fc; fc=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell); if (fc) prevTimeTrade=CurTime(); if (fc && UseSound) PlaySound(NameFileSound); } void OpenBuy() { double ldLot, ldStop, ldTake,ticket; string lsComm; ldLot = GetSizeLot(); ldStop = GetStopLossBuy(); ldTake = GetTakeProfitBuy(); lsComm = GetCommentForOrder(); ticket=OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,0,0,clOpenBuy); if (ticket>0) prevTimeTrade=CurTime(); if (UseSound) PlaySound(NameFileSound); } void OpenSell() { double ldLot, ldStop, ldTake,ticket; string lsComm; ldLot = GetSizeLot(); ldStop = GetStopLossSell(); ldTake = GetTakeProfitSell(); lsComm = GetCommentForOrder(); ticket=OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,0,0,clOpenSell); if (ticket>0) prevTimeTrade=CurTime(); if (UseSound) PlaySound(NameFileSound); } string GetCommentForOrder() { return(Name_Expert); } double GetSizeLot() { return(Lots); } double GetStopLossBuy() { return (Bid-lStopLoss*Point);} double GetStopLossSell() { return(Ask+sStopLoss*Point); } double GetTakeProfitBuy() { return(Ask+lTakeProfit*Point); } double GetTakeProfitSell() { return(Bid-sTakeProfit*Point); } Forex Trader 2005.12.10 19:01 #14 Гляньте плз заодно почему при компиляции "ругается": Function "ModifyStopLoss" is not referenced and will be removed from exp-file (код здешний, с постов выше, код KimIV тоже :( ) Forex Trader 2005.12.10 19:37 #15 Гляньте плз заодно почему при компиляции "ругается": Function "ModifyStopLoss" is not referenced and will be removed from exp-file (код здешний, с постов выше, код KimIV тоже :( ) Это не смертельно... Forex Trader 2005.12.10 22:22 #16 Sam, Читай почту. 2 варианта у тебя. 12 Новый комментарий
//+------------------------------------------------------------------+ //| Copyright 2005, Gordago Software Corp. | //| http://www.gordago.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2005, Gordago Software Corp." #property link "http://www.gordago.com" extern double lStopLoss = 12; extern double sStopLoss = 12; extern double lTakeProfit = 500; extern double sTakeProfit = 500; extern color clOpenBuy = Blue; extern color clCloseBuy = Aqua; extern color clOpenSell = Red; extern color clCloseSell = Violet; extern color clModiBuy = Blue; extern color clModiSell = Red; extern string Name_Expert = "Generate from Gordago"; extern int Slippage = 1; extern bool UseSound = False; extern string NameFileSound = "alert.wav"; extern int PauseTrade = 5; // Пауза между торгами в минутах extern double Lots = 25; int prevTimeTrade; void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start(){ if(Bars<100){ Print("bars less than 100"); return(0); } if(lStopLoss<10){ Print("StopLoss less than 10"); return(0); } if(lTakeProfit<10){ Print("TakeProfit less than 10"); return(0); } if(sStopLoss<10){ Print("StopLoss less than 10"); return(0); } if(sTakeProfit<10){ Print("TakeProfit less than 10"); return(0); } double diRSI0=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI1=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI2=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI3=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI4=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI5=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI6=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI7=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI8=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI9=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI10=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI11=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI12=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI13=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI14=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI15=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI16=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI17=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI18=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI19=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI20=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI21=iRSI(NULL,1440,14,PRICE_CLOSE,1); double diRSI22=iRSI(NULL,1440,14,PRICE_CLOSE,0); double diRSI23=iRSI(NULL,1440,14,PRICE_CLOSE,1); if(AccountFreeMargin()<(1000*Lots)){ Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (!ExistPositions()){ if ((diRSI0>30 && diRSI1<30) || (diRSI2>50 && diRSI3<50) || (diRSI4>70 && diRSI5<70)){ if (isCompletOfPause()) OpenBuy(); return(0); } if ((diRSI6<70 && diRSI7>70) || (diRSI8<50 && diRSI9>50) || (diRSI10<30 && diRSI11>30)){ if (isCompletOfPause()) OpenSell(); return(0); } } if (ExistPositions()){ if(OrderType()==OP_BUY){ if ((diRSI12<30 && diRSI13>30) || (diRSI14<50 && diRSI15>50) || (diRSI16<70 && diRSI17>70)){ CloseBuy(); return(0); } } if(OrderType()==OP_SELL){ if ((diRSI18>70 && diRSI19<70) || (diRSI20>50 && diRSI21<50) || (diRSI22>30 && diRSI23<30)){ CloseSell(); return(0); } } } return (0); } //+------------------------------------------------------------------+ //| Возвращает флаг окончания паузы в торговле | //+------------------------------------------------------------------+ bool isCompletOfPause() { if (CurTime()-prevTimeTrade>=60*PauseTrade) return(True); else return(False); } bool ExistPositions() { for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { return(True); } } } return(false); } void ModifyStopLoss(double ldStopLoss) { bool fm; fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE); if (fm && UseSound) PlaySound(NameFileSound); } void CloseBuy() { bool fc; fc=OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clCloseBuy); if (fc) prevTimeTrade=CurTime(); if (fc && UseSound) PlaySound(NameFileSound); } void CloseSell() { bool fc; fc=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell); if (fc) prevTimeTrade=CurTime(); if (fc && UseSound) PlaySound(NameFileSound); } void OpenBuy() { double ldLot, ldStop, ldTake,ticket; string lsComm; ldLot = GetSizeLot(); ldStop = GetStopLossBuy(); ldTake = GetTakeProfitBuy(); lsComm = GetCommentForOrder(); ticket=OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,0,0,clOpenBuy); if (ticket>0) prevTimeTrade=CurTime(); if (UseSound) PlaySound(NameFileSound); } void OpenSell() { double ldLot, ldStop, ldTake,ticket; string lsComm; ldLot = GetSizeLot(); ldStop = GetStopLossSell(); ldTake = GetTakeProfitSell(); lsComm = GetCommentForOrder(); ticket=OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,0,0,clOpenSell); if (ticket>0) prevTimeTrade=CurTime(); if (UseSound) PlaySound(NameFileSound); } string GetCommentForOrder() { return(Name_Expert); } double GetSizeLot() { return(Lots); } double GetStopLossBuy() { return (Bid-lStopLoss*Point);} double GetStopLossSell() { return(Ask+sStopLoss*Point); } double GetTakeProfitBuy() { return(Ask+lTakeProfit*Point); } double GetTakeProfitSell() { return(Bid-sTakeProfit*Point); }(код здешний, с постов выше, код KimIV тоже :( )
(код здешний, с постов выше, код KimIV тоже :( )
Это не смертельно...