//| nl - количество баров слева | //| nr - количество баров справа | //+----------------------------------------------------------------------------+ double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) { bool f; int fb, i, nb=-1;
if (sy=="" || sy=="0") sy=Symbol(); if (nl<1) nl=1; if (nr<1) nr=1;
fb=nr; while (nb<0) { fb++; f=True; for (i=fb; i>fb-nr; i--) { if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; } } if (f) { for (i=fb; i<fb+nl; i++) { if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; } } if (f) { nb=fb; break; } } }
//| nl - количество баров слева | //| nr - количество баров справа | //+----------------------------------------------------------------------------+ double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) { bool f; int fb, i, nb=-1;
if (sy=="" || sy=="0") sy=Symbol(); if (nl<1) nl=1; if (nr<1) nr=1;
fb=nr; while (nb<0) { fb++; f=True; for (i=fb; i>fb-nr; i--) { if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; } } if (f) { for (i=fb; i<fb+nl; i++) { if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; } } if (f) { nb=fb; break; } } }
return(iHigh(sy, tf, nb)); }
#property strict
voidOnStart() { int i=1,cnt=1; double lastupfr=0;
while(cnt<5) { double upfr=GetNearestUpFractal(_Symbol,0,2,2); if(upfr!=0) { if(upfr>lastupfr) lastupfr=upfr; cnt++; } i++; } Comment("Biggest UpFractal = ",lastupfr); } //----------- //| nl - количество баров слева | //| nr - количество баров справа | //+----------------------------------------------------------------------------+ double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) { bool f; int fb, i, nb=-1;
if (sy=="" || sy=="0") sy=Symbol(); if (nl<1) nl=1; if (nr<1) nr=1;
fb=nr; while (nb<0) { fb++; f=True; for (i=fb; i>fb-nr; i--) { if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; } } if (f) { for (i=fb; i<fb+nl; i++) { if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; } } if (f) { nb=fb; break; } } }
你好,请你帮我找到较大的分形的价格,从第一个--接近 顶部的四个分形。
你好,请你帮我找到较大的分形的价格,从第一个--接近 顶部的四个分形。
{
Comment("Min = ",MaxMinFractal(MODE_LOWER, 4),"; Max = ",MaxMinFractal(MODE_UPPER, 4));
}
//===============================================================================================
//--------------------------------- Возвращает Max/Min фрактала --------------------------------+
//===============================================================================================
double MaxMinFractal(int mode=MODE_UPPER, int nf=4) {
string symb=Symbol();
double f=0,min=9999999,max=0;
int kf=0;
for(int i=3; i<iBars(symb, 0); i++) {
if(mode==MODE_LOWER){
f=iFractals(symb, 0, MODE_LOWER, i);
if(f!=0) {
kf++;
if(min>iLow(symb,0,i)) min=iLow(symb,0,i);
if(kf>=nf) return(min);
}}
if(mode==MODE_UPPER){
f=iFractals(symb, 0, MODE_UPPER, i);
if(f!=0) {
kf++;
if(max<iHigh(symb,0,i)) max=iHigh(symb,0,i);
if(kf>=nf) return(max);
}}}
return(-1);
}
你好,请你帮我找到较大的分形的价格,在第一个--接近 顶部的四个分形中。
void OnStart()
{
int i=1,cnt=1;
double lastupfr=0;
while(cnt<5)
{
double upfr=iFractals(_Symbol,0,1,i);
if(upfr!=0)
{
if(upfr>lastupfr) lastupfr=upfr;
cnt++;
}
i++;
}
Comment("Biggest UpFractal = ",lastupfr);
}
甚至更短 )谢谢你。
那么,在这些可定制的分形中,你如何选择最大的一个?
//| nr - количество баров справа |
//+----------------------------------------------------------------------------+
double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) {
bool f;
int fb, i, nb=-1;
if (sy=="" || sy=="0") sy=Symbol();
if (nl<1) nl=1;
if (nr<1) nr=1;
fb=nr;
while (nb<0) {
fb++;
f=True;
for (i=fb; i>fb-nr; i--) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; }
}
if (f) {
for (i=fb; i<fb+nl; i++) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; }
}
if (f) { nb=fb; break; }
}
}
return(iHigh(sy, tf, nb));
}
甚至更短 )谢谢你。
那么,在这些可定制的分形中,你如何选择最大的一个?
//| nr - количество баров справа |
//+----------------------------------------------------------------------------+
double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) {
bool f;
int fb, i, nb=-1;
if (sy=="" || sy=="0") sy=Symbol();
if (nl<1) nl=1;
if (nr<1) nr=1;
fb=nr;
while (nb<0) {
fb++;
f=True;
for (i=fb; i>fb-nr; i--) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; }
}
if (f) {
for (i=fb; i<fb+nl; i++) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; }
}
if (f) { nb=fb; break; }
}
}
return(iHigh(sy, tf, nb));
}
void OnStart()
{
int i=1,cnt=1;
double lastupfr=0;
while(cnt<5)
{
double upfr=GetNearestUpFractal(_Symbol,0,2,2);
if(upfr!=0)
{
if(upfr>lastupfr) lastupfr=upfr;
cnt++;
}
i++;
}
Comment("Biggest UpFractal = ",lastupfr);
}
//-----------
//| nl - количество баров слева |
//| nr - количество баров справа |
//+----------------------------------------------------------------------------+
double GetNearestUpFractal(string sy="0", int tf=0, int nl=2, int nr=2) {
bool f;
int fb, i, nb=-1;
if (sy=="" || sy=="0") sy=Symbol();
if (nl<1) nl=1;
if (nr<1) nr=1;
fb=nr;
while (nb<0) {
fb++;
f=True;
for (i=fb; i>fb-nr; i--) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i-1)) { f=False; break; }
}
if (f) {
for (i=fb; i<fb+nl; i++) {
if (iHigh(sy, tf, i)<iHigh(sy, tf, i+1)) { f=False; break; }
}
if (f) { nb=fb; break; }
}
}
return(iHigh(sy, tf, nb));
}
所以返回了近似分形的价格。
如何找到 四个可配置分形的最大值?
所以返回最近的分形的价格。
如何找到 四个可配置分形的最大值?
嗯...你需要选择设置的4个分形进行选择,通过吹走没有价值的劣质分形,留下一个Maximka:)
你是如何做到的?