{ qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits()); wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits()); arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());} // ответы с е, че заааа
Bonjour, Tâche : Trouver les prix H(max) ou L(min) dans un nombre donné de barres en question.
J'ai cherché un peu partout, mais je ne peux pas attribuer une plage de sélection, c'est-à-dire l'endroit où insérer la variable (DO), pour sélectionner l'intervalle de recherche.
double UpperFractal(int DO) // Фрактал UP { //--- объявление переменных int n,UpperFractal_1; //--- объявление массивов для записи значений буферов индикатора iFractal double FractalUp[]; double UpFractal_1; //--- сначала нужно записать в массивы значения буферов индиктора Fractal //--- заполнение данными буфера CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp); //--- индексация как в таймсериях ArraySetAsSeries(FractalUp,true);
//--- далее используем оператор цикла for для поиска первого верхнего фрактала for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++) { //--- если непустое значение, прерываем цикл if(FractalUp[n]!=EMPTY_VALUE) break; } //--- запишем ценовое значение первого фрактала в переменную UpFractal_1=FractalUp[n]; //--- запишем индекс первого фрактала в переменную UpperFractal_1=n;
Bonjour, Tâche : Trouver les prix H(max) ou L(min) dans un nombre donné de barres en question.
J'ai cherché un peu partout, mais je ne peux pas attribuer une plage de sélection, c'est-à-dire l'endroit où insérer la variable (DO), pour sélectionner l'intervalle de recherche.
double UpperFractal(int) // Фрактал UP { //--- объявление переменных int n,UpperFractal_1; //--- объявление массивов для записи значений буферов индикатора iFractal double FractalUp[]; double UpFractal_1; //--- сначала нужно записать в массивы значения буферов индиктора Fractal //--- заполнение данными буфера CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp); //--- индексация как в таймсериях ArraySetAsSeries(FractalUp,true);
//--- далее используем оператор цикла for для поиска первого верхнего фрактала for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++) { //--- если непустое значение, прерываем цикл if(FractalUp[n]!=EMPTY_VALUE) break; } //--- запишем ценовое значение первого фрактала в переменную UpFractal_1=FractalUp[n]; //--- запишем индекс первого фрактала в переменную UpperFractal_1=n;
return (UpFractal_1); }
Pourquoi dois-je utiliser des fractales ?
D'abord CopyHigh() pour la plage requise, puis dans le tableau où la plage est copiée, cherchez max (ArrayMaximum()).
Je ne comprends pas ce qui ne va pas, la tâche consiste à trouver la valeur minimale sur un intervalle donné (index).
//+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ doubleiLow(string symbol,ENUM_TIMEFRAMES timeframe,intindex) { double low=0; ArraySetAsSeries(Low,true); int copied=CopyLow(symbol,timeframe,0,index,Low); if(copied>0 && index<copied) low=ArrayMinimum(Low); return(low); }
ArrayMinimum renvoie l'INDEX de l'élément dont la valeur est la plus faible. Maintenant nous devons récupérer la valeur elle-même du tableauLow par l'indexlow:
Bon après-midi. Je normalise les valeurs, mais en déboguant les chiffres avec *e, comment se fait-il ?
Je n'arrive pas à écrire les valeurs dans Excel.
Si un autre paramètre est assigné au tableau (arrayZ[0][q][z] = 0 ;), on enregistre
{
arrayIndexY[z] = srcArr[z].close; //данные колонки У
for(int q = 1; q <= copied-1; q++) //Перебор периодов
{
{
qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits());
wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits());
arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());} // ответы с е, че заааа
}
}
flag = false;
GenerateCsv("test.csv");
}
Bon après-midi. Je normalise les valeurs, mais en déboguant les chiffres avec *e, comment se fait-il ?
Je n'arrive pas à écrire les valeurs dans Excel.
Si un autre paramètre est assigné au tableau (arrayZ[0][q][z] = 0 ;), on enregistre
{
arrayIndexY[z] = srcArr[z].close; //данные колонки У
for(int q = 1; q <= copied-1; q++) //Перебор периодов
{
{
qer = NormalizeDouble(sm.d[q-1].m[nBar-z],Digits());
wer = NormalizeDouble(sm.d[q].m[nBar-z],Digits());
arrayZ[0][q][z] = NormalizeDouble(qer-wer,Digits());}
qer;
}
}
flag = false;
GenerateCsv("test.csv");
}
Utilisez DoubleToString() pour la sortie imprimée.
Bonjour, est-il vrai qu'il est possible de gagner de l'argent sur ce forum ? Si oui, pouvez-vous me dire comment ?
Bonjour, Tâche : Trouver les prix H(max) ou L(min) dans un nombre donné de barres en question.
J'ai cherché un peu partout, mais je ne peux pas attribuer une plage de sélection, c'est-à-dire l'endroit où insérer la variable (DO), pour sélectionner l'intervalle de recherche.
{
//--- объявление переменных
int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
double FractalUp[];
double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
ArraySetAsSeries(FractalUp,true);
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
{
//--- если непустое значение, прерываем цикл
if(FractalUp[n]!=EMPTY_VALUE)
break;
}
//--- запишем ценовое значение первого фрактала в переменную
UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
UpperFractal_1=n;
return (UpFractal_1);
}
Bonjour, Tâche : Trouver les prix H(max) ou L(min) dans un nombre donné de barres en question.
J'ai cherché un peu partout, mais je ne peux pas attribuer une plage de sélection, c'est-à-dire l'endroit où insérer la variable (DO), pour sélectionner l'intervalle de recherche.
{
//--- объявление переменных
int n,UpperFractal_1;
//--- объявление массивов для записи значений буферов индикатора iFractal
double FractalUp[];
double UpFractal_1;
//--- сначала нужно записать в массивы значения буферов индиктора Fractal
//--- заполнение данными буфера
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUp);
//--- индексация как в таймсериях
ArraySetAsSeries(FractalUp,true);
//--- далее используем оператор цикла for для поиска первого верхнего фрактала
for(n=0; n<Bars(Symbol(),PERIOD_CURRENT); n++)
{
//--- если непустое значение, прерываем цикл
if(FractalUp[n]!=EMPTY_VALUE)
break;
}
//--- запишем ценовое значение первого фрактала в переменную
UpFractal_1=FractalUp[n];
//--- запишем индекс первого фрактала в переменную
UpperFractal_1=n;
return (UpFractal_1);
}
Pourquoi dois-je utiliser des fractales ?
D'abord CopyHigh() pour la plage requise, puis dans le tableau où la plage est copiée, cherchez max (ArrayMaximum()).
Idem pour min, mais CopyLow() et ArrayMinimum()
Je ne comprends pas ce qui ne va pas, la tâche consiste à trouver la valeur minimale sur un intervalle donné (index).
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
double low=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,index,Low);
if(copied>0 && index<copied) low=ArrayMinimum(Low);
return(low);
}
Je ne comprends pas ce qui ne va pas, la tâche consiste à trouver la valeur minimale sur un intervalle donné (index).
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
double low=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,index,Low);
if(copied>0 && index<copied) low=ArrayMinimum(Low);
return(low);
}
ArrayMinimum renvoie l'INDEX de l'élément dont la valeur est la plus faible. Maintenant nous devons récupérer la valeur elle-même du tableauLow par l'indexlow:
Faible [faible]