Bonjour, est-ce que quelqu'un sait comment modifier le code de 'ClassExpert' pour construire un profil de marché hebdomadaire ou mensuel ? Je demande de l'aide
Je n'ai pas eu le temps de faire le tour de la question, mais j'ai eu l'occasion d'en apprendre un peu plus sur les profils de marché et c'est le meilleur que j'ai trouvé.
J'ai juste fait un changement dans la méthode de calcul du profil, j'ai utilisé le volume tick au lieu de vérifier juste si le prix est passé dans le point. J'ai fait cela parce que si vous voyez, les trades et les différents moments ont des livres différents, vous pouvez le voir dans l'histogramme du volume. On ne peut donc pas se contenter de compter si le prix est là et d'ajouter un point.
Êtes-vous d'accord ?
La modification que j'ai apportée a montré les différences entre les deux méthodes.
Bonjour Quelqu'un sait-il s'il est possible de faire un robot qui ne trahit que ces lignes du POC ? si oui, comment faire ? car je teste toutes les variables du fichier ClassPriceHistogram et les valeurs sont toutes nulles, quelqu'un peut-il m'aider ?
Bonjour Luiz@Luiz Vinicius Pereira Rocha - Je suis nouveau en programmation, et je travaillais sur un EA qui ne suit que les POC, les valorisations hautes et basses, et j'ai fini par trouver cet indicateur. Cependant, je n'ai pas pu trouver l'endroit où il stocke les points Poc, lorsque j'utilise la fonction print sur certaines variables de l'auteur telles que : Poc_value, des valeurs nulles apparaissent. pouvez-vous m'aider ?
tout d'abord : Merci pour votre excellent article et votre travail !
Bien que cela fasse longtemps que vous l'avez publié, il fonctionne très bien.
Ce que j'ai ici pour vous et la communauté est une mise à jour, de sorte que l'histogramme utilise le tickvolume, parce qu'utiliser seulement l'action des prix dans les zones de temps, où le volume est presque nul, n'est pas très utile.
Remplacez le code correspondant dans le fichier ClassPriceHistogram.mqh
bool CPriceHistogram::calculationPOCs()
{
int rates_total,rates_high,rates_time,rates_tv,index;
doubleiHigh[],iLow[];
long iTV[];
datetimeiTime[];
// Ïîëó÷àåì äàííûå çà ïåðèîä ñ time_start äî time_end / Nous obtenons les données de time_start à time_endint err=0;
do
{
rates_time=CopyTime(NULL,PERIOD_M1,time_start,time_end,iTime);
rates_high=CopyHigh(NULL,PERIOD_M1,time_start,time_end,iHigh);
rates_total=CopyLow(NULL,PERIOD_M1,time_start,time_end,iLow);
rates_tv=CopyTickVolume(NULL,PERIOD_M1,time_start,time_end,iTV);
err++;
}
while((rates_time<=0 || (rates_total!=rates_high || rates_total!=rates_time || rates_tv!=rates_time)) && err<AMOUNT_OF_ATTEMPTS);
if(err>=AMOUNT_OF_ATTEMPTS)
{
return(false);
}
poc_start_time=iTime[0];
high_day=iHigh[ArrayMaximum(iHigh,0,rates_total)];
low_day=iLow[ArrayMinimum(iLow,0,rates_total)];
int count=int((high_day-low_day)/_Point)+1;
// Ïîäñ÷åò äëèòåëüíîñòè íàõîæäåíèÿ öåíû íà êàæäîì óðîâíå / Compte de la durée d'une constatation du prix à chaque niveauint ThicknessOfLevel[]; // ñîçäàåì ìàññèâ äëÿ ïîäñ÷åòà òèêîâ / nous créons un tableau pour le nombre de ticsArrayResize(ThicknessOfLevel,count);
ArrayInitialize(ThicknessOfLevel,0);
for(int i=0;i<rates_total;i++)
{
double C=iLow[i];
long CTV=iTV[i];
// Distribue le tickvolume de la barre minute sur tous les points possibles de la barre// L'incrément par point sera donc le suivant ...int CInc=int(((iHigh[i]-iLow[i])/_Point));
while(C<iHigh[i])
{
int Index=int((C-low_day)/_Point);
ThicknessOfLevel[Index]+=CInc;
C+=_Point;
}
}
J'admets qu'il s'agit d'un hack rapide et que je n'ai pas testé chaque partie du code, mais jusqu'à présent, cela fonctionne bien.
Juste une petite mise au point... J'ai téléchargé tous les fichiers dans les répertoires appropriés, j'ai compilé et j'ai reçu des erreurs concernant ClassPriceHistogram.mqh. A la ligne 375, j'ai simplement remplacé
CPriceHistogram::Delete()
par
void CPriceHistogram::Delete()
Cela fonctionne maintenant parfaitement avec la version 5.00 Build 3661 de AMP Futures MT5.
@Oleksandr, cet "indicateur" est techniquement un Expert. Les tampons d'indicateurs ne sont pas disponibles dans les Experts. Les tampons peuvent être recréés efficacement en utilisant des tableaux dans les Experts, mais seuls les tampons d'indicateurs réels peuvent être appelés par iCustom, donc pour cela, un nouvel indicateur personnalisé devrait être codé à partir de zéro. Malheureusement, ces deux options dépassent mon niveau de compétence en matière de codage. Je vous souhaite bonne chance dans la recherche d'une aide plus efficace.
Supprimez la commande "Delete()" et cela fonctionnera.
Je n'ai pas eu le temps de faire le tour de la question, mais j'ai eu l'occasion d'en apprendre un peu plus sur les profils de marché et c'est le meilleur que j'ai trouvé.
J'ai juste fait un changement dans la méthode de calcul du profil, j'ai utilisé le volume tick au lieu de vérifier juste si le prix est passé dans le point. J'ai fait cela parce que si vous voyez, les trades et les différents moments ont des livres différents, vous pouvez le voir dans l'histogramme du volume. On ne peut donc pas se contenter de compter si le prix est là et d'ajouter un point.
Êtes-vous d'accord ?
La modification que j'ai apportée a montré les différences entre les deux méthodes.
Bonjour Dmitry,
tout d'abord : Merci pour votre excellent article et votre travail !
Bien que cela fasse longtemps que vous l'avez publié, il fonctionne très bien.
Ce que j'ai ici pour vous et la communauté est une mise à jour, de sorte que l'histogramme utilise le tickvolume, parce qu'utiliser seulement l'action des prix dans les zones de temps, où le volume est presque nul, n'est pas très utile.
Remplacez le code correspondant dans le fichier ClassPriceHistogram.mqh
J'admets qu'il s'agit d'un hack rapide et que je n'ai pas testé chaque partie du code, mais jusqu'à présent, cela fonctionne bien.
Voici un exemple avec l'indice SP500 :
Cher Dmitry
J'espère que vous allez bien.
Serait-il possible d'implémenter des tampons pour les lignes ?
Pour chaque POC, peut-être un Vwap et un Median ?
Je vous remercie d'avance.
par
void CPriceHistogram::Delete()Cela fonctionne maintenant parfaitement avec la version 5.00 Build 3661 de AMP Futures MT5.
@Oleksandr, cet "indicateur" est techniquement un Expert. Les tampons d'indicateurs ne sont pas disponibles dans les Experts. Les tampons peuvent être recréés efficacement en utilisant des tableaux dans les Experts, mais seuls les tampons d'indicateurs réels peuvent être appelés par iCustom, donc pour cela, un nouvel indicateur personnalisé devrait être codé à partir de zéro. Malheureusement, ces deux options dépassent mon niveau de compétence en matière de codage. Je vous souhaite bonne chance dans la recherche d'une aide plus efficace.
MERCI