




//+------------------------------------------------------------------+
//| binar.mq4 |
//| Copyright © 2017 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017"
#property link ""
#property strict
#property description "советник"
#property description "sell при пересечение сверху вниз 90 и на buy снизу вверх 10"
#property description ""
//--------------------------------------------------------------------
extern int period_RSI = 4,
period_MFI = 4,
period_DEM = 4,
slippage = 10,
RSIbuy_level = 10,
RSIsell_level = 90,
MFIbuy_level = 0.0,
MFIsell_level = 100,
DEMbuy_level = 0.0,
DEMsell_level = 1.0,
Magic = 777;
extern double Lot = 100;
//--------------------------------------------------------------------
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
double RSI0 = iRSI(NULL,0,period_RSI,PRICE_CLOSE,0);
// double RSI1 = iRSI(NULL,0,period_RSI,PRICE_CLOSE,1);
double MFI0 = iMFI(NULL,0,period_MFI,0);
// double MFI1 = iMFI(NULL,0,period_MFI,0);
double DEM0 = iDeMarker(NULL,0,period_DEM,0);
// double DEM1 = iDeMarker(NULL,0,period_DEM,0);
// Comment("MFI ",MFI0, "\nRSI ",RSI0, "\nDEM ",DEM0);
double SL=0,TP=0;
if (RSI0 < RSIbuy_level && MFI0 == MFIbuy_level && DEM0 == DEMbuy_level && Open[1]>Close[1])
{
// if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
// if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,0,0,1,Magic)==-1) Print(GetLastError());
}
if (RSI0 > RSIsell_level && MFI0 == MFIsell_level && DEM0 == DEMsell_level && Open[1]<Close[1])
// if (RSI0 < sell_level && RSI1 > sell_level)
{
// if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits);
// if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,0,0,1,Magic)==-1) Print(GetLastError());
}
}
//--------------------------------------------------------------------
//+------------------------------------------------------------------+
//| Option.mq4 |
//| Copyright 2015, AM2 |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, AM2"
#property link "www.forexsystems.biz"
#property description "Simple expert advisor"
//--- Inputs
extern double Lots = 1; // ставка в валюте
extern string Expiration = "BO exp:60"; // время истечения в минутах
extern int Magic = 111; // магик
int LossCount = 0;
double LotsArray[]={1,2,4,8,16,32,64,128};
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
Comment("");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void OpenPos()
{
int res;
double bid=MarketInfo(OrderSymbol(),MODE_BID);
double ask=MarketInfo(OrderSymbol(),MODE_ASK);
//--- sell
if(High[1]<High[2] && High[3]<High[2])
{
res=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble (bid,Digits),0,0,0,Expiration,Magic,0,Red);
return;
}
//--- buy
if(Low[1]>Low[2] && Low[3]>Low[2])
{
res=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble (ask,Digits),0,0,0,Expiration,Magic,0,Blue);
return;
}
//---
}
double Lots()
{
double Lot = Lots;
int total = OrdersHistoryTotal();
for (int i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderProfit() > 0)
{
Lot=LotsArray[0];
LossCount = 0;
}
else
{
Lot=LotsArray[LossCount+1];
LossCount++;
}
}
}
return(Lot);
}
//+------------------------------------------------------------------+
int CountTrades()
{
int count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| OnTick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(CountTrades()<1) OpenPos();
}
//+------------------------------------------------------------------+
Syte