Можно ли в советнике связать три графика с разными таймфреймами? На основании показаний индикаторов в двух графиках происходит поиск места и валютной пары для входа, а на основании последнего третьего графика осуществляется расчёт места входа, стоп и профит, и открывается позиция для входа. Такое технически возможно? Или нужно создавать эксперта специально под определённый таймфрейм, для работы в одном графике? При этом нужно не просто считать показания баров, тиков или свечей с графиков разных временных периодов, а именно проанализировать показания как минимум двух индикаторов, а по третьему на основании этих данных - открыть ордер.
писал функцию для обнаружения флета и запнулся во что-то мне совсем не понятное. не срабатывает оператор if. может я где-то что-то написал не так , хочу чтобы посмотрели свежим взглядом ибо я в упор не понимаю почему. даже видео с дебагера записал где показываю что значения равны , но оно не срабатывает. вставте мне пожалуйста мозг на место))))
{
int size = ArrayRange(arrayMinLow,0);
int digits = MarketInfo (symbol,MODE_DIGITS);
double spreadFlat = highLine - lowLine;
int directionFlat = -1;
int slew = 0;
for (int i = 0; i<size; i++){
double hl =arrayMinLow[i][0];
double ol = arrayMinLow[i][1];
double cl = arrayMinLow[i][2];
double ll = arrayMinLow[i][3];
if (hl == highLine || ol == highLine){ //вот тут не срабатываетif( directionFlat == -1 || directionFlat == 0)
slew++;
directionFlat = 1;
}elseif (cl == lowLine|| ll ==lowLine){
if( directionFlat == -1 || directionFlat == 1)
slew++;
directionFlat = 0;
}
}
if(slew >=4 )
returntrue;
returnfalse;
}
Deniskaaa: Можно ли в советнике связать три графика с разными таймфреймами? На основании показаний индикаторов в двух графиках происходит поиск места и валютной пары для входа, а на основании последнего третьего графика осуществляется расчёт места входа, стоп и профит, и открывается позиция для входа. Такое технически возможно? Или нужно создавать эксперта специально под определённый таймфрейм, для работы в одном графике? При этом нужно не просто считать показания баров, тиков или свечей с графиков разных временных периодов, а именно проанализировать показания как минимум двух индикаторов, а по третьему на основании этих данных - открыть ордер.
Всё можно! См. Документацию или справку в МетаЭдиторе!
здравствуйте , писал функцию для обнаружения флета и запнулся во что-то мне совсем не понятное. не срабатывает оператор if. может я где-то что-то написал не так , хочу чтобы посмотрели свежим взглядом ибо я в упор не понимаю почему. даже видео с дебагера записал где показываю что значения равны , но оно не срабатывает. вставте мне пожалуйста мозг на место))))
код:
bool checkLine(double highLine , double lowLine, double &arrayMinLow[][5] ) { int size = ArrayRange(arrayMinLow,0); int digits = MarketInfo (symbol,MODE_DIGITS);
double spreadFlat = highLine - lowLine;
int directionFlat = -1; int slew = 0; for (int i = 0; i<size; i++){ double hl =arrayMinLow[i][0]; double ol = arrayMinLow[i][1]; double cl = arrayMinLow[i][2]; double ll = arrayMinLow[i][3];
if (hl == highLine || ol == highLine){ //вот тут не срабатывает
ну если это облегчит задачу то перепостю правильно. писал функцию для обнаружения флета и запнулся во что-то мне совсем не понятное. не срабатывает оператор if. может я где-то что-то написал не так , хочу чтобы посмотрели свежим взглядом ибо я в упор не понимаю почему. даже видео с дебагера записал где показываю что значения равны , но оно не срабатывает. вставте мне пожалуйста мозг на место))))
{
int size = ArrayRange(arrayMinLow,0);
double spreadFlat = highLine - lowLine;
int directionFlat = -1;
int slew = 0;
for (int i = 0; i<size; i++){
double hl =arrayMinLow[i][0];
double ol = arrayMinLow[i][1];
double cl = arrayMinLow[i][2];
double ll = arrayMinLow[i][3];
if (hl == highLine || ol == highLine){ //вот тут не срабатываетif( directionFlat == -1 || directionFlat == 0)
slew++;
directionFlat = 1;
}elseif (cl == lowLine|| ll ==lowLine){
if( directionFlat == -1 || directionFlat == 1)
slew++;
directionFlat = 0;
}
}
if(slew >=4 )
returntrue;
returnfalse;
}
Подскажите пожалуйста, где можно найти пример кода, раскрашивающий индикаторную линию в разные цвета?
Сколько цветов, столько же буфферов! При условии смены цвета меняете буффер! Много примеров в КодеБейс!
{ int size = ArrayRange(arrayMinLow,0); int digits = MarketInfo (symbol,MODE_DIGITS); double spreadFlat = highLine - lowLine; int directionFlat = -1; int slew = 0; for (int i = 0; i<size; i++){ double hl =arrayMinLow[i][0]; double ol = arrayMinLow[i][1]; double cl = arrayMinLow[i][2]; double ll = arrayMinLow[i][3]; if (hl == highLine || ol == highLine){ //вот тут не срабатывает if( directionFlat == -1 || directionFlat == 0) slew++; directionFlat = 1; }else if (cl == lowLine|| ll ==lowLine){ if( directionFlat == -1 || directionFlat == 1) slew++; directionFlat = 0; } } if(slew >=4 ) return true; return false; }ссылка на видео https://www.youtube.com/watch?v=k9Zo0SgrMCA
Можно ли в советнике связать три графика с разными таймфреймами? На основании показаний индикаторов в двух графиках происходит поиск места и валютной пары для входа, а на основании последнего третьего графика осуществляется расчёт места входа, стоп и профит, и открывается позиция для входа. Такое технически возможно? Или нужно создавать эксперта специально под определённый таймфрейм, для работы в одном графике? При этом нужно не просто считать показания баров, тиков или свечей с графиков разных временных периодов, а именно проанализировать показания как минимум двух индикаторов, а по третьему на основании этих данных - открыть ордер.
здравствуйте , писал функцию для обнаружения флета и запнулся во что-то мне совсем не понятное. не срабатывает оператор if. может я где-то что-то написал не так , хочу чтобы посмотрели свежим взглядом ибо я в упор не понимаю почему. даже видео с дебагера записал где показываю что значения равны , но оно не срабатывает. вставте мне пожалуйста мозг на место))))
код:
{
int size = ArrayRange(arrayMinLow,0);
int digits = MarketInfo (symbol,MODE_DIGITS);
double spreadFlat = highLine - lowLine;
int directionFlat = -1;
int slew = 0;
for (int i = 0; i<size; i++){
double hl =arrayMinLow[i][0];
double ol = arrayMinLow[i][1];
double cl = arrayMinLow[i][2];
double ll = arrayMinLow[i][3];
if (hl == highLine || ol == highLine){ //вот тут не срабатывает
if( directionFlat == -1 || directionFlat == 0)
slew++;
directionFlat = 1;
}else if (cl == lowLine|| ll ==lowLine){
if( directionFlat == -1 || directionFlat == 1)
slew++;
directionFlat = 0;
}
}
if(slew >=4 )
return true;
return false;
}
{ int size = ArrayRange(arrayMinLow,0); double spreadFlat = highLine - lowLine; int directionFlat = -1; int slew = 0; for (int i = 0; i<size; i++){ double hl =arrayMinLow[i][0]; double ol = arrayMinLow[i][1]; double cl = arrayMinLow[i][2]; double ll = arrayMinLow[i][3]; if (hl == highLine || ol == highLine){ //вот тут не срабатывает if( directionFlat == -1 || directionFlat == 0) slew++; directionFlat = 1; }else if (cl == lowLine|| ll ==lowLine){ if( directionFlat == -1 || directionFlat == 1) slew++; directionFlat = 0; } } if(slew >=4 ) return true; return false; }ссылка на видео https://www.youtube.com/watch?v=k9Zo0SgrMCA
зы предыдущее сообщение удалить не могу, копировал все в html и удалил видимо тег который нужен для редактирования сообщения
Что не так? Почему остаются не закрашенные синие участки?