어디가 오류인지 알려주세요. 상황은 일반 프랙탈을 호출할 때 조건에 따라 화살표가 설정되어야 하는 위치에 있고, iFreeNumFractals 프랙탈을 호출할 때 조건이 충족되고 화살표가 있어야 하는데 그렇지 않은 것입니다. 이론상 일반적인 프랙탈로 라인을 주석 처리하고 iFreeNumFractals의 주석 처리를 제거하면 그림이 동일해야 하지만...
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
//--- plot UP
#property indicator_label1 "UP"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrLawnGreen
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot DN
#property indicator_label2 "DN"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrDeepPink
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
//--- indicator buffers
double BufferUP[];
double BufferDN[];
int dist=3;
string nameInd;
datetime timf=0;
int numf;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,BufferUP);
SetIndexBuffer(1,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
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[])
{
//---
if(rates_total<2) return(0);
{
int limit=rates_total-prev_calculated;
if(limit>1)
{
limit=rates_total-2;
ArrayInitialize(BufferUP,EMPTY_VALUE);
ArrayInitialize(BufferDN,EMPTY_VALUE);
}
for(int i=limit; i>=0; i--)
{
if(fub(i))
{
BufferUP[i]=low[i]-dist*Point;
}
Comment("");
}
//--- return value of prev_calculated for next call
}
return(rates_total);
}
//+
bool fub(int ib)//
{
bool bingob=false,flag_verh_f=0;
int start_bar=0,numbarfrup=0,kfr_all=0;
double high_old=0,prfra=0,f_up=0,f_dn=0,f=0;
{
for(int i_i=ib+3; i_i<Bars-2; i_i++)
{
if(high_old<High[i_i]) high_old=High[i_i];
f_up=iFractals(Symbol(),0,MODE_UPPER,i_i);
//f_up=NormalizeDouble(iCustom(Symbol(),0,"iFreeNumFractals",1,2,2,2,2,0,i_i),Digits);
f_dn=iFractals(Symbol(),0,MODE_LOWER,i_i);
//f_dn=NormalizeDouble(iCustom(Symbol(),0,"iFreeNumFractals",1,2,2,2,2,1,i_i),Digits);
if(f_up>0 && f_up>iMA(NULL,0,33,0,MODE_SMMA,PRICE_CLOSE,i_i)+10*Point)//Если фрактал найден выше МА+10 pips
{
numbarfrup=i_i;
}
if(f_dn>0 && f_dn<iMA(NULL,0,33,0,MODE_SMMA,PRICE_CLOSE,i_i))
{
start_bar=numbarfrup;break;
}
}
for(int i_i=start_bar; i_i<Bars-2; i_i++)
{
f=iFractals(Symbol(),0,MODE_UPPER,i_i);
//f=NormalizeDouble(iCustom(Symbol(),0,"iFreeNumFractals",1,2,2,2,2,0,i_i),Digits);
if(f>0)kfr_all++;
if(f>0 && Low[ib]<f+1*_Point && Open[ib]>f //Сравнение фрактала с текущ баром
&&
high_old-f>=100*Point//от максимума до фрактала 100 пп
)
{
bingob=true;
prfra=f;
timf=Time[i_i];
break;
}
if(kfr_all==3)break;
}
}
// numfb=iBarShift(NULL,PERIOD_CURRENT,timf,true);
if(bingob)
{flag_verh_f=true;}
if(bingob==false)
flag_verh_f=false;
return(flag_verh_f);
}
//
어디가 오류인지 알려주세요. 상황은 일반 프랙탈을 호출할 때 조건에 따라 화살표가 설정되어야 하는 위치에 있고, iFreeNumFractals 프랙탈을 호출할 때 조건이 충족되고 화살표가 있어야 하는데 그렇지 않은 것입니다. 이론상 일반적인 프랙탈로 라인을 주석 처리하고 iFreeNumFractals의 주석 처리를 제거하면 그림이 동일해야 하지만...
차트에 표준 및 표준 프랙탈과 같은 설정이 있는 iFreeNumFractals 표시기가 있습니까?
내 코드는 임시 전역 변수에 longchartID를 씁니다.
시각적으로 F3 키를 누르면 0(또는 다른 우수한 값)이 표시됩니다.
이것은 터미널이 이것이 이중 값이라고 생각하고 그것을 보여주려고 하기 때문에 발생하지만 우리는 그것을 길게 빼버렸습니다. 이것은 완전히 다른 숫자 형식입니다.
이 값이 일반 double로 다시 읽혀지면 거기에 무엇이 있는지 명확하지 않습니다.
내 코드로 읽히면 긴 항목이 다시 나타납니다(저장된 것과 동일한 항목).
터미널 창에서 수동으로 이 변수를 찌르면 터미널이 대체를 감지하므로 0으로 재설정됩니다.
OnInit()에서 시간으로 시간 초기화 제거
고맙습니다.
어디가 오류인지 알려주세요. 상황은 일반 프랙탈을 호출할 때 조건에 따라 화살표가 설정되어야 하는 위치에 있고, iFreeNumFractals 프랙탈을 호출할 때 조건이 충족되고 화살표가 있어야 하는데 그렇지 않은 것입니다. 이론상 일반적인 프랙탈로 라인을 주석 처리하고 iFreeNumFractals의 주석 처리를 제거하면 그림이 동일해야 하지만...
CHART_BRING_TO_TOP에서 결과를 어떻게 사용할 수 있습니까?
CHART_BRING_TO_TOP 이전에 사용된 것과 동일
고맙습니다.
어디가 오류인지 알려주세요. 상황은 일반 프랙탈을 호출할 때 조건에 따라 화살표가 설정되어야 하는 위치에 있고, iFreeNumFractals 프랙탈을 호출할 때 조건이 충족되고 화살표가 있어야 하는데 그렇지 않은 것입니다. 이론상 일반적인 프랙탈로 라인을 주석 처리하고 iFreeNumFractals의 주석 처리를 제거하면 그림이 동일해야 하지만...
차트에 표준 및 표준 프랙탈과 같은 설정이 있는 iFreeNumFractals 표시기가 있습니까?
그렇다면 신호가 일치합니까?
안녕하세요 여러분, 이 상황에서 우리는 같은 가격에 3개의 구매 주문을 가지고 있습니다 가격이 10포인트씩 올라갑니다 각 주문에 대해 +10포인트가 있습니다
정확히 원하는 것을 이해하려면 텍스트에 구두점을 사용하는 데 어려움을 겪습니다. 그런 다음 그들은 모든 것을 하나의 힙에 버렸다 - 무슨 뜻인지 알아 내십시오 ...
CHART_BRING_TO_TOP 이전에 사용된 것과 동일
정확히 원하는 것을 이해하려면 텍스트에 구두점을 사용하는 데 어려움을 겪습니다. 그런 다음 그들은 모든 것을 하나의 힙에 버렸다 - 무슨 뜻인지 알아 내십시오 ...
이러한 상황에서 우리는 시장에 3개의 구매 주문을 가지고 있으며 동일한 가격으로 가격이 10포인트씩 오르고 각 주문에 대해 +10포인트가 있습니다. 이 주문은 µl4에서 더 이상 확인되지 않습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론
타라스 슬로보디아닉 , 2018.10.07 22:12
GlobalVariable Check() - 이미 그러한 변수가 있는지 확인하고 그렇지 않은 경우
GlobalVariableTemp() - 다음 실행 시 삭제될 임시 변수를 생성합니다.
이 순간은 명확합니다. 질문은 GP가 없으면 GlobalVariableSet을 통해 상수가 아닌 임시 GP만 생성되는 이유입니다.
차트에 표준 및 표준 프랙탈과 같은 설정이 있는 iFreeNumFractals 표시기가 있습니까?
그렇다면 신호가 일치합니까?
도형이 완전히 일치합니다.
화면의 일반적인 도형에 있는 화살표
iFreeNumFractals는 첫 번째와 마지막을 두며 중간 3은 없습니다.