www.opentraders.ru/downloads/896/


extern string Expiration = "BO exp:60"; // время истечения в секундах
extern string Expiration = "BO exp:60"; // время истечения в секундах
//+------------------------------------------------------------------+
//| Fibo.mq4 |
//| Copyright 2015, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
//--- Inputs
extern int StopLoss = 500; //стоплосс отложенного ордера(если 0 то на предыдущий хай или лоу)
extern int TakeProfit = 500; //тейкпрофит отложенного ордера
extern int TrailingStop = 300; //трал
extern int Delta = 100; //расстояние от лоу или хая
extern int StartHour = 9; //час начала торговли
extern int StartMin = 30; //минута начала торговли
extern int EndHour = 18; //час окончания торговли
extern int EndMin = 30; //минута окончания торговли
extern bool BuyStop = true;//
extern bool SellStop = true;//
extern bool BuyLimit = true;//
extern bool SellLimit = true;//
extern double Lots = 0.1; //лот
extern int Count = 100; //количество ордеров
extern int Slip = 0; //проскальзывание ордеров
extern int Magic = 123; //магик
double p0,p100,p50,p235,p382,p618,p786;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int CountOrders()
{
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_BUYLIMIT || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(double price)
{
int r;
if(BuyLimit && Close[0]>price) r=OrderSend(Symbol(),OP_BUYLIMIT,Lots,price,Slip,0,0,"",Magic,0,Blue);
if(SellStop && Close[0]>price) r=OrderSend(Symbol(),OP_SELLSTOP,Lots,price,Slip,0,0,"",Magic,0,Red);
if(SellLimit && Close[0]<price)r=OrderSend(Symbol(),OP_SELLLIMIT,Lots,price,Slip,0,0,"",Magic,0,Red);
if(BuyStop && Close[0]<price) r=OrderSend(Symbol(),OP_BUYSTOP,Lots,price,Slip,0,0,"",Magic,0,Blue);
return;
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
int bar=WindowFirstVisibleBar();
p0=Low[iLowest(NULL,0,MODE_LOW,bar-1,1)];
p100=High[iHighest(NULL,0,MODE_HIGH,bar-1,1)];
p50=NormalizeDouble(p100-(p100-p0)*0.5,Digits);
p235=NormalizeDouble(p100-((p100-p0)*0.235),Digits);
p382=NormalizeDouble(p100-((p100-p0)*0.382),Digits);
p618=NormalizeDouble(p100-((p100-p0)*0.618),Digits);
p786=NormalizeDouble(p100-((p100-p0)*0.786),Digits);
if(CountOrders()<1)
{
PutOrder(p0);
PutOrder(p235);
PutOrder(p382);
PutOrder(p50);
PutOrder(p618);
PutOrder(p786);
PutOrder(p100);
}
Comment("\n 0.0%: ",p100,
"\n 23.5%: ",p235,
"\n 38.2%: ",p382,
"\n 50%: ",p50,
"\n 61.8%: ",p618,
"\n 78.6%: ",p786,
"\n 100%: ",p0);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Bars.mq4 |
//| Copyright 2015, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
#property indicator_chart_window
input int bar=4;
input int bars=150;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit(void)
{
ObjectsDeleteAll();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Comment("");
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
int start()
{
for(int i=0;i<=bars;i++)
{
PutVLine("VLine"+TimeToStr(Time[i]),Time[i]);
i=i+bar;
}
Comment("\n");
return (0);
}
//+------------------------------------------------------------------+
void PutVLine(string name,datetime t)
{
ObjectCreate(name,OBJ_VLINE,0,t,0);
ObjectSet(name,OBJPROP_COLOR,Blue);
ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(name,OBJPROP_WIDTH,0);
}
//+------------------------------------------------------------------+
AM2