
//+------------------------------------------------------------------+
//| Pointer11.mq4 |
//| Copyright 2020, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
#property indicator_chart_window
extern int Count = 555; // баровдля расчета
extern int UpLevel = 70; // верхний уровень стоха
extern int DnLevel = 30; // нижний уровень стоха
extern int KPeriod = 5; // к период стоха
extern int DPeriod = 3; // д период стоха
extern int Slowing = 3; // замедление
datetime t=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
Comment("");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutArrow(string name,int code,double p,datetime time,color clr)
{
ObjectDelete(0,name);
//--- создадим стрелку
ObjectCreate(0,name,OBJ_ARROW,0,time,p);
//--- установим код стрелки
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,code);
//--- установим способ привязки
ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_CENTER);
//--- установим цвет стрелки
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим размер стрелки
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
for(int i=1; i<Count; i++)
{
double sto1=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,0,0,0,i);
double sto2=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,0,0,0,i+1);
bool buy = sto2<DnLevel && sto1>DnLevel;
bool sell = sto2>UpLevel && sto1<UpLevel;
if(t!=time[0])
{
if(buy)
{
PutArrow("UP"+string(time[i]),233,low[i],time[i],Lime);
Alert(_Symbol+" Buy!!!");
}
if(sell)
{
PutArrow("Dn"+string(time[i]),234,high[i],time[i],Red);
Alert(_Symbol+" Sell!!!");
}
}
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Надеюсь кто то сможет сделать подобное чудо
Что то не то сейчас аж терминал стал виснуть (значит удаляйте и обращайтесь к другому специалисту
Скажите а возможность сдвигать по времени?
ближайший уровень открытия сверху и снизу от цены открытия на графике
AM2