4
//+------------------------------------------------------------------+
//| SerJSystem |
//+------------------------------------------------------------------+
//------- Внешние параметры советника --------------------------------
#define MAGIC 20051208
extern string _Parameters_Trade = "----- Параметры торговли";
extern double Lots = 0.1; // Размер торгуемого лота
extern int StopLoss = 0; // Размер фиксированного стопа
//extern int hour = 7; // час открытия
extern int TakeProfit = 7; // Размер фиксированного тэйка
extern bool UseClosePos = True; // Использовать закрытие позиции
extern bool UseTrailing = True; // Использовать трал
extern bool ProfitTrailing = True; // Тралить только профит
extern int TrailingStop = 1000; // Фиксированный размер трала
extern int TrailingStep = 5; // Шаг трала
extern int Slippage = 3; // Проскальзывание цены
extern int ORDER = 0; // Проскальзывание цены
extern int LotsWayChoice = 2; // Способ выбора рабочего лота:
// 0-фиксированный,
// 1-процент от депозита,
// 2-фракционно-пропорциональный,
// 3-фракционно-фиксированный,
extern int LotsPercent=10; // Процент от депозита
extern int LotsDeltaDepo=500; // Коэффициент приращения депозита
extern int LotsDepoForOne=500; // Размер депозита для одного минилота
extern int LotsMax=100000; // Максимальное количество минилотов
extern string _Parameters_Expert = "----- Параметры советника";
extern bool UseOneAccount = False; // Торговать только на одном счёте
extern int NumberAccount = 11111; // Номер торгового счёта
extern string Name_Expert = "SerJSystem";
extern bool UseSound = True; // Использовать звуковой сигнал
extern string NameFileSound = "expert.wav"; // Наименование звукового файла
extern color clOpenBuy = LightBlue; // Цвет открытия покупки
extern color clOpenSell = LightCoral; // Цвет открытия продажи
extern color clModifyBuy = Aqua; // Цвет модификации покупки
extern color clModifySell = Tomato; // Цвет модификации продажи
extern color clCloseBuy = Blue; // Цвет закрытия покупки
extern color clCloseSell = Red; // Цвет закрытия продажи
//---- Глобальные переменные советника -------------------------------
int LotsBuy=0.1,LotsSell=0.1;
double dLot=0.1;
//------- Подключение внешних модулей --------------------------------
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void start() {
if (UseOneAccount && AccountNumber()!=NumberAccount) {
if (!IsTesting()) Comment("Торговля на счёте: "+AccountNumber()+" ЗАПРЕЩЕНА!");
return;
} else if (!IsTesting()) Comment("");
double ldStop=0, ldTake=0;
double Op1=iOpen (NULL,0, 1);
double Cl1=iClose(NULL,0, 1);
double PADX=iADX(NULL,PERIOD_M30,14 ,PRICE_CLOSE,1,0);
double NADX=iADX(NULL,PERIOD_M30,14 ,PRICE_CLOSE,2,0);
double Psar = iSAR(NULL,PERIOD_M30,0.02,0.2,0) ;
if((Hour()==19 || Hour()==0 || Hour()==7)&& Minute()==0 && Seconds()<3)
{
if (Psar < iClose(NULL, PERIOD_M30,0) && PADX > NADX)
//if (iCCI(NULL, 0, 5, PRICE_CLOSE, 0)>iCCI(NULL, 0, 5, PRICE_CLOSE, 2) && iCCI(NULL, 0, 5, PRICE_CLOSE, 0)<50)
//if (OrderType()!=OP_BUY)
{
if (StopLoss!=0)ldStop=Ask-StopLoss*Point;
if (TakeProfit!=0)ldTake=Ask+TakeProfit*Point;
SetOrder(OP_BUY, Ask,ldStop,ldTake);
}
if (Psar > iClose(NULL, PERIOD_M30,0) && NADX > PADX)
//if (iCCI(NULL, 0, 5, PRICE_CLOSE, 0)<iCCI(NULL, 0, 5, PRICE_CLOSE, 2) && iCCI(NULL, 0, 5, PRICE_CLOSE, 0)>50)
//if (OrderType()!=OP_SELL)
{
if (StopLoss!=0)ldStop=Bid+StopLoss*Point;
if (TakeProfit!=0)ldTake=Bid-TakeProfit*Point;
SetOrder(OP_SELL, Bid, ldStop, ldTake);
}
}
}
//+------------------------------------------------------------------+
void SetOrder(int op, double pp, double ldStop, double ldTake) {
color clOpen;
string lsComm=GetCommentForOrder();
if (op==OP_BUYLIMIT || op==OP_BUYSTOP) clOpen=clOpenBuy;
else clOpen=clOpenSell;
if (LotsWayChoice==0) dLot=Lots;
// фиксированный процент от депозита
if (LotsWayChoice==1) {
dLot=MathCeil(AccountFreeMargin()/10000*LotsPercent)/10;
}
// фракционно-пропорциональный
if (LotsWayChoice==2) {
int k=LotsDepoForOne;
for (double i=2; i<=LotsMax; i++) {
k=k+i*LotsDeltaDepo;
if (k>AccountFreeMargin()) {
dLot=(i-1)/10; break;
}
}
}
// фракционно-фиксированный
if (LotsWayChoice==3) {
dLot=MathCeil((AccountFreeMargin()-LotsDepoForOne)/LotsDeltaDepo)/10;
}
OrderSend(Symbol(),op,dLot,pp,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpen);
if (UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+
string GetCommentForOrder() {
return(Name_Expert);
}
это он лови