نوشته اصلی توسط mohsen_hps
نمایش پست ها
سلام دوست عزیز
میشه لطف کنید این اندیکاتور رو برام درست کنید:
اگر لطف کنید اندیکاتوری بنویسید که دو پارامتر ورودی n و m بگیره و اگر تغییر حجم در کندل فعلی از n%
میانگین حجم m کندل قبلی بیشتر یا کمتر باشه روی کندل فعلی درصد تغییر نمایش داده بشه ممنون میشم.
مثلا اگر عدد 10 رو برای ورودی n درنظر بگیریم و عدد 3 رو برای ورودی m
اگر تغییر در حجم کندل فعلی بیشتر یا کمتر از 10 % میانگین حجم 3 کندل قبلی باشه,این درصد تغییر رو هرچه که هست زیر کندل فعلی نشون بده مثلا +13% -17% یا ..
قسمت محاسباتیش رو با کلی بالا پایین کردن و سرچ نوشتم.(پارامتر m رو در برنامه mm تعریف کردم )
فقط اگه میشه این بخش رسم کردنش رو برام تصحیح کنید و اصلا نتونستم با سرچ و .. یاد بگیرم.
یعنی این volDarsad که توسط برنامه محاسبه میشه میخوام در هر تایم فریم جداگانه محاسبه و زیر کندل مربوطه نوشته بشه.و تایم فریم عوض میشه قبلی ها رو پاک کنه.و این رو بلد نیستم
البته اگر اینکار در یک حلقه for برای مثلا 100 کندل آخر انجام بشه و اینجا شرط n اضافه بشه که اگر volDarsad>n باشه زیر کندل ها نمایش داده بشه دیگه کامل میشه. (این رو هم بلد نیستم)
//+------------------------------------------------------------------+
//| Real Squat.mq4 |
//| bahman babareza |
//+------------------------------------------------------------------+
#property copyright "bahman babareza"
#property link "https://www.myfxbook.com/portfolio/bahman-babareza/1514387"
#property version "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
extern int mm;
double vol;
double volDarsad;
int OnInit()
{
//--- indicator buffers mapping
//---
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 = 1; i < (mm+1); i++)
{vol= vol+Volume[i+1]; }
vol=vol/(mm);
volDarsad=((Volume[1]-vol)/vol)*100;
Comment(
"\n Average volume ",mm, " kandel ghabl = ",int(vol)," \n Changhe volume = ",int(volDarsad),"%"," \n Volum now = ",Volume[1]);
ObjectCreate(""+DoubleToStr(mm), OBJ_TEXT, 0, Time[mm],Low[mm]-15*Point );
ObjectSetText(""+DoubleToStr(mm), ""+DoubleToStr(volDarsad,0), 7, "Arial", Red);
vol=0;
volDarsad=0;
return(rates_total);
}
//+------------------------------------------------------------------+

پیام بگذارید: