Oh, je devrais demander à Nikolay Semko d'écrire une version alternative du kanvas, avec un bon anticrénelage, peut-être une vision différente, et d'écrire un article, peut-être le fera-t-il ?
Bonjour. Veuillez m'aider à trouver la cause de cette erreur. Je transfère un indicateur de mql4 à mql5. J'utilise le "shell" suivant pour les fonctions iHigh :
En conséquence, je reçois l'erreur 4301 : "Unknown symbol", même si une chaîne de caractères renvoyée par la fonction Symbol() est passée comme paramètre du symbole. Voici un fragment de code de la fonction appelant iHigh
Qui est "i" ? Quelle est sa valeur avant la boucle ?
Je n'ai pas fait l'appel ResetLastError, maintenant je l'ai fait - le code d'erreur est le même. J'utilise les tableaux low[i], high[i] etc. dans la fonction OnCalculate, et iHigh, iLow etc. dans les fonctions externes.
Je n'ai pas appelé ResetLastError, maintenant je l'ai fait - le code d'erreur est le même. J'utilise les tableaux low[i], high[i] etc. dans la fonction OnCalculate et iHigh, iLow etc. dans les fonctions externes.
Fournissez le code MQL5 qui peut être exécuté et décrivez les conditions dans lesquelles l'erreur se produit.
Fournissez un code MQL5 qui peut être exécuté et décrivez les conditions dans lesquelles l'erreur se produit.
Il semble y avoir un problème avec mon terminal. J'ai exécuté le même code sur un netbook sur un autre mt5, même compte de démonstration - pas d'erreur.
Il semble y avoir un problème avec mon terminal. J'ai exécuté le même code sur un netbook sur un autre mt5, même compte de démonstration - pas d'erreur.
Voici le code lui-même :
Note : Vous écrivez dans la section principale du forum MQL5, c'est là que MQL5 est discuté. Pour MQL4, il existe une section spéciale :MQL4 et MetaTrader 4. Veuillez publier votre code dans la section appropriée. C'est encore mieux lorsque l'éditeur respecte les utilisateurs et publie le code dans l'en-tête où le type de langue est affiché.
Bonjour ! Je ne peux pas modifier l'horizon temporel d'un objet graphique. Je ne sais pas si c'est le terminal qui se plante ou moi. Voici le code de vérification
intOnStart(void)
{
double price;
datetime time0, time1;
string obj_name= "test_of_line_timeframe_setting";
ENUM_TIMEFRAMES tf1, tf2;
// берем последнюю цену и время MqlRates rates[];
int copied=CopyRates(NULL,0,0,3,rates);
price= rates[0].open;
time0= rates[0].time;
// рисуем линиюObjectCreate(0, obj_name, OBJ_HLINE, 0, time0, price);
// --- отображение на переднем плане (false) или background (true)ObjectSetInteger (0, obj_name, OBJPROP_BACK , false);
// --- Включить (true) или отключить (false) режим для перемещения меток с помощью мышиObjectSetInteger (0, obj_name, OBJPROP_SELECTABLE , true);
ObjectSetInteger (0, obj_name, OBJPROP_SELECTED , false);
// --- Скрыть (true) или отобразить (false) графический объект в списке объектовObjectSetInteger (0, obj_name, OBJPROP_HIDDEN , false);
// --- Установите порядок приоритета для получения события щелчка мыши по диаграммеObjectSetInteger (0, obj_name, OBJPROP_ZORDER , 0);
// устанавливаем видимость на дневном таймфрэймеObjectSetInteger(0,obj_name,OBJPROP_PERIOD,PERIOD_D1);
// считываем видимость
tf1= ObjectGetInteger(0,obj_name,OBJPROP_PERIOD);
// устанавливаем видимость на часовом таймфрэймеObjectSetInteger(0,obj_name,OBJPROP_PERIOD,PERIOD_H1);
// считываем видимость
tf2= ObjectGetInteger(0,obj_name,OBJPROP_PERIOD);
if (tf1==tf2) Alert("таймфрейм изменить не удается");
elseAlert("таймфрейм успешно изменен");
ObjectDelete(0,obj_name);
return(0);
}
Bonjour. Veuillez m'aider à trouver la cause de cette erreur. Je transfère un indicateur de mql4 à mql5. J'utilise le "shell" suivant pour les fonctions iHigh :
En conséquence, je reçois l'erreur 4301 : "Unknown symbol", même si une chaîne de caractères renvoyée par la fonction Symbol() est passée comme paramètre du symbole. Voici un fragment de code de la fonction appelant iHigh
Qui est "i" ? Quelle est sa valeur avant la boucle ?
Faites-vous l'appel ResetLastError avantiHigh ?
Qui est le "i" ? Quelle est sa valeur avant la boucle ?
Faites-vous un appel à ResetLastError avantiHigh ?
La valeur de i est parcourue en boucle dans la fonction OnCalculate.
Je n'ai pas fait l'appel ResetLastError, maintenant je l'ai fait - le code d'erreur est le même. J'utilise les tableaux low[i], high[i] etc. dans la fonction OnCalculate, et iHigh, iLow etc. dans les fonctions externes.
La valeur de i est bouclée dans la fonction OnCalculate
Je n'ai pas appelé ResetLastError, maintenant je l'ai fait - le code d'erreur est le même. J'utilise les tableaux low[i], high[i] etc. dans la fonction OnCalculate et iHigh, iLow etc. dans les fonctions externes.
Fournissez le code MQL5 qui peut être exécuté et décrivez les conditions dans lesquelles l'erreur se produit.
Fournissez un code MQL5 qui peut être exécuté et décrivez les conditions dans lesquelles l'erreur se produit.
Il semble y avoir un problème avec mon terminal. J'ai exécuté le même code sur un netbook sur un autre mt5, même compte de démonstration - pas d'erreur.
Voici le code lui-même :
Il semble y avoir un problème avec mon terminal. J'ai exécuté le même code sur un netbook sur un autre mt5, même compte de démonstration - pas d'erreur.
Voici le code lui-même :
Note : Vous écrivez dans la section principale du forum MQL5, c'est là que MQL5 est discuté. Pour MQL4, il existe une section spéciale :MQL4 et MetaTrader 4. Veuillez publier votre code dans la section appropriée. C'est encore mieux lorsque l'éditeur respecte les utilisateurs et publie le code dans l'en-tête où le type de langue est affiché.
Bonjour !
Je ne peux pas modifier l'horizon temporel d'un objet graphique. Je ne sais pas si c'est le terminal qui se plante ou moi.
Voici le code de vérification
Le résultat est incorrect
Mais dès que vous commentez la ligne sélectionnée, l'indicateur commence à fonctionner correctement.
Pour une raison quelconque, ChartGetInteger dans OnInit affecte les propriétés de l'objet graphique.
bogue OBJ_CHART. Indicateur
Le résultat est faux.
J'ai ajouté ::ChartRedraw
Voici le résultat :
2018.02.19 23:27:35.526 ChartGetInteger(Chart,CHART_WIDTH_IN_PIXELS) = 400
2018.02.19 23:27:36.323 ChartGetInteger(Chart,CHART_WIDTH_IN_PIXELS) = 400
2018.02.19 23:27:36.324 ChartGetInteger(Chart,CHART_HEIGHT_IN_PIXELS) = 250
Tout d'abord, la ligne non commentée (ajoutée par PRINT pour plus de clarté)