| / | Форум |
|
ALex2008
07.02.2012 08:53
Вырезал с советника, который сам давно писал, всё лишнее, но что-то не работает, посмотрите плиз.. #include <stdlib.mqh> //extern double Profit = 1000; extern int BU = 1; extern double BUenter = 100; extern double BUstop = 10; int Type,Ticket; double TP,OpenPrise,EnterBU,SLmax,StopLossBU,Stop,StopLevel,b1,s1,b0,s0,StopLoss,Enter; bool CheckBU; static bool mod; int init(){ //Profit*=Point; BUenter*=Point; BUstop*=Point; return(0); } int deinit() { return(0); } int start() { if(WorkOrders()){ //если есть ордера if ((BU==1)&&(Type<=1)&&(!CheckBU)) SetBU(); } return(0); } //-------Вычисление бу и установка void SetBU(){ if(Type==0){ EnterBU=OpenPrise+BUenter; StopLossBU=OpenPrise+BUstop; RefreshRates(); if(Bid>=EnterBU) OrderModify(Ticket,OpenPrise,StopLossBU,OrderTakeProfit(),0,Red); } if(Type==1){ EnterBU=OpenPrise-BUenter; StopLossBU=OpenPrise-BUstop; RefreshRates(); if(Ask<=EnterBU) OrderModify(Ticket,OpenPrise,StopLossBU,OrderTakeProfit(),0,Red); } } //-------Поиск ордера текущей пары bool WorkOrders(){ for (int i=OrdersTotal()-1;i>=0;i--){ if (!OrderSelect(i,SELECT_BY_POS)) continue; if (OrderSymbol()!=Symbol()) continue; OpenPrise=OrderOpenPrice(); Type =OrderType(); Ticket =OrderTicket(); Stop =OrderStopLoss(); CheckBU =false; if(Type==0 && Stop>OpenPrise) CheckBU=true; if(Type==1 && Stop<OpenPrise) CheckBU=true; return(true);} return(false); } |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
|
IgorM
07.02.2012 09:28
|
|
AM2
07.02.2012 09:29
ALex2008: Если БУ не пашет, вот этот можешь взять.Вырезал с советника, который сам давно писал, всё лишнее, но что-то не работает, посмотрите плиз.. //------------------------------------------------------------------+ void No_Loss(int NoLoss) { double OOP,OSL; int tip; bool error; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS)==true) { tip = OrderType(); if (tip<2 && OrderSymbol()==Symbol()) { if (OrderMagicNumber()!=magic) continue; if (tip==0) //Bay { OOP = NormalizeDouble(OrderOpenPrice(),Digits); OSL = NormalizeDouble(OrderStopLoss(),Digits); if ((Bid-OOP)/Point>=NoLoss && OOP > OSL) {error=OrderModify(OrderTicket(),OOP,OOP,OrderTakeProfit(),0,White);Sleep(500);} } if (tip==1) //Sell { OOP = NormalizeDouble(OrderOpenPrice(),Digits); OSL = NormalizeDouble(OrderStopLoss(),Digits); if ((OOP-Ask)/Point>=NoLoss && (OOP < OSL || OSL ==0)) {error=OrderModify(OrderTicket(),OOP,OOP,OrderTakeProfit(),0,White);Sleep(500);} } } } } } //------------------------------------------------------------------+ |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий