aisaki_FTJ/ind Psychological Line.mq5

74 lines
4.6 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 14:39:35 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//|
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
//|
//| c<EFBFBD>[g<EFBFBD><EFBFBD>n0}<EFBFBD><EFBFBD>}n0,gpeh0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0,gpen0rRT<EFBFBD>0<EFBFBD><EFBFBD>{Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0Y0
//|
//+------------------------------------------------------------------+
//#property indicator_chart_window //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0h<EFBFBD>:y
#property indicator_separate_window //%R<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0h<EFBFBD>:y
#property indicator_buffers 1 //cj<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0pe
#property indicator_plots 1 //h<EFBFBD>:yU0[0<EFBFBD>0cj<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0pe
#property indicator_type1 DRAW_LINE //cjn0.z^<EFBFBD>
#property indicator_width1 1 //<EFBFBD>0<EFBFBD>0<EFBFBD>0n0*YU0
#property indicator_style1 STYLE_SOLID //<EFBFBD>0<EFBFBD>0<EFBFBD>0n0.z^<EFBFBD>
#property indicator_color1 clrCornflowerBlue //<EFBFBD>0<EFBFBD>0<EFBFBD>0n0r<EFBFBD>
#property indicator_level1 50 //cjn0<EFBFBD>0<EFBFBD>0<EFBFBD>0
#property indicator_level2 70 //cjn0<EFBFBD>0<EFBFBD>0<EFBFBD>0
#property indicator_level3 30 //cjn0<EFBFBD>0<EFBFBD>0<EFBFBD>0
#property indicator_levelcolor clrGray //<EFBFBD>0<EFBFBD>0<EFBFBD>0n0r<EFBFBD>
#property indicator_levelwidth 1 //<EFBFBD>0<EFBFBD>0<EFBFBD>0n0*YU0
#property indicator_levelstyle STYLE_DOT //<EFBFBD>0<EFBFBD>0<EFBFBD>0n0.z^<EFBFBD>
input int period = 12; // g<EFBFBD><EFBFBD>
double Buf0[]; //cj<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(un0M<EFBFBD>Rn0<EFBFBD>[<EFBFBD>
int OnInit()
{
//M<EFBFBD>R<EFBFBD>0cj<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0<EFBFBD><EFBFBD>#<EFBFBD><EFBFBD>NQ0<EFBFBD>0
if( !SetIndexBuffer(0, Buf0)|| !ArraySetAsSeries(Buf0,true)){
Print("<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<1A>",GetLastError());
return(INIT_FAILED);
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| <EFBFBD>0<EFBFBD>0<EFBFBD>0 |
//+------------------------------------------------------------------+
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[])
{
int limit = rates_total - prev_calculated; //<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Y0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0pe
int count = 0;
for(int i=0; i<limit; i++){
for(int j=0; j<period; j++){
// }<EFBFBD><EFBFBD>}n0,gpe<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
if(iOpen(_Symbol,PERIOD_CURRENT,i+j) < iClose(_Symbol,PERIOD_CURRENT,i+j) ) count++;
}
// }<EFBFBD><EFBFBD>}n0,gpe/<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>n0,gpe
Buf0[i] = (double)count/period *100 ;
count = 0;
}
return(rates_total-1);
}