
из всей сетки ордеров увеличивает почему-то только один ордер, остальные тупо закрываются по профиту
поручился бы, тоже поглядывал на этот индикатор
//+------------------------------------------------------------------+
//| 3IN1.mq4 |
//| Copyright 2018, AM2 |
//| http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link "http://www.forexsyatems.biz"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
extern int Shift=1; // на каком баре сигнал индикатора
extern string IndName1="s-StochFlet";
extern int KPeriod=21;
extern int DPeriod=12;
extern int Slowing=3;
extern int method=0;//0-Простое скользящее среднее,1-Экспоненциальное скользящее среднее, //2-Сглаженное скользящее среднее,3-Линейно-взвешенное скользящее среднее
extern int price=0;//0 - Low/High или 1 - Close/Close
extern string для_WPR="";
extern int ExtWPRPeriod=14;
extern double ZoneHighPer= 70;
extern double ZoneLowPer = 30;
extern string IndName2="Waddah_Attar_Explosion";
extern int Sensetive=150;
extern int DeadZonePip=15;
extern int ExplosionPower=15;
extern int TrendPower=15;
extern string IndName3="Waddah_Attar_Explosion";
extern string TimeFrame="current time frame";
extern int r = 12;
extern int s = 12;
extern int u = 5;
double up[],dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,up);
SetIndexBuffer(1,dn);
SetIndexStyle(0,DRAW_ARROW,2,Lime);
SetIndexStyle(1,DRAW_ARROW,1,Red);
SetIndexArrow(0,233);
SetIndexArrow(1,234);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 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=0;i<1000;i++)
{
//stoflet
double buy=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,2,i);
double sell=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,3,i);
//wada
double green=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,0,i);
double red=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,1,i);
//tvi
double tvi1=iCustom(NULL,0,IndName3,TimeFrame,r,s,u,4,i);
double tvi2=iCustom(NULL,0,IndName3,TimeFrame,r,s,u,4,i+1);
if(buy>0 && green>0 && tvi1>tvi2) up[i]=low[i];
if(sell>0 && red>0 && tvi1<tvi2) up[i]=low[i];
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
AM2