Mon approche. Le noyau est le moteur. - page 93

 

En bref, il n'était pas possible de lire le contenu de la ressource sur le graphique normal.

Peut-être que j'ai fait quelque chose de mal...

Tout d'abord, nous créons un EA pour le testeur. Dans celui-ci, créez un objet et liez-le au fichier :

int OnInit()
  {
   //----------------------------------------------
   if(!ObjectCreate(0,"Resource",OBJ_BITMAP_LABEL,0,0,0))Print("Object is not created!");
   else Print("Object created!");
   //-------------------------------
   if(!ObjectSetString(0,"Resource",OBJPROP_BMPFILE,"::Resource"))Print("BMPFILE is not created!");
   else Print("BMPFILE created!");
   //----------------------------------------------
   return(INIT_SUCCEEDED);
  }

Ensuite, nous écrivons le code suivant dans la fonction OnTick() :

void OnTick()
  {
   uchar Arr[];
   uint  Data[];
   //---------------------------
   string price = (string)Bid;
   //---------------------------
   int width = StringToCharArray(price,Arr);
   //---------------------------
   ArrayResize(Data,width);
   //---------------------------
   ArrayCopy(Arr,Data);
   //---------------------------
   if(!ResourceCreate("::Resource",Data,width,1,0,0,0,COLOR_FORMAT_XRGB_NOALPHA))Print("Resource is not created!");
   //---------------------------
  }


Ensuite, créez un indicateur avec la fonction timer et écrivez-y :

void OnTimer()
  {
//---
   uint Data[],width,height;
   //-----------------------------
   if(!ResourceReadImage("::Resource",Data,width,height))Print("Failed to read resource!");
   else Print("Resource is readable!");
   //-----------------------------
   
  }

Exécutez le conseiller expert dans le testeur de stratégie, puis l'indicateur sur le graphique normal.

И... ne lit rien. Il dit qu'il n'a pas pu lire la ressource.

 

Alors, qu'est-ce qui ne va pas ?

l'erreur -

ERR_RESOURCE_NOT_FOUND

 
fxsaber:

Je me suis retiré de la discussion.

Sans vouloir vous offenser. Rien de personnel. C'est juste que l'article ne m'aide pas à comprendre quoi que ce soit. La solution est trop compliquée.

Dites-moi pourquoi la lecture de la ressource créée par l'Expert Advisor dans le Strategy Tester par l'indicateur sur un graphique commun ne fonctionne pas ?

Ai-je fait une erreur dans le code, ou cela ne fonctionne-t-il tout simplement pas ?

 

En bref, la question reste ouverte. Qui sait ce que c'est - ce serait le bon moment pour critiquer ma décision).

J'accepte toute critique. Vous avez juste besoin de comprendre si mon erreur, ou de ne pas travailler la visibilité de la ressource créée dans le testeur.

On saura alors si cette ressource peut être une solution universelle pour le transfert d'informations entre programmes.

Je pense que ces informations seront utiles à tous.

 

Ce n'est pas encore clair.

J'ai installé l'indicateur et l'EA sur le même graphique. L'indicateur ne voit toujours pas la ressource.

La lecture de la ressource est placée dans le conseiller expert lui-même, juste après son remplissage. La ressource est visible.

Il s'avère que la ressource n'est visible que pour le programme dans lequel elle est définie.

Ou bien, il n'est pas visible uniquement depuis l'indicateur.

Je vais maintenant vérifier si la ressource est visible par le conseiller expert sur l'autre graphique.

 
Реter Konow:

...

Maintenant je vais vérifier si l'EA voit la ressource sur l'autre graphique.

Non, il ne voit pas non plus la ressource.

Et où sont passés tous les gourous ? ....

Je fais manifestement une erreur. Mais en quoi...

Ou peut-être que ça ne fonctionne pas du tout ?


ZS. Au fait, pourquoi fxsaber utilise-t-il une chaîne de description de graphique pour envoyer un message à un autre programme si les ressources fonctionnent comme un outil de communication parfait ?

 
Je vais essayer d'enregistrer la ressource dans un fichier après sa création.
 
Реter Konow:
J'essaierai de garder la ressource en dossier, une fois qu'elle sera créée.

Magnifique monologue)

 
Vitaly Muzichenko:

Magnifique monologue)

Tu sais de quoi il s'agit ?

 
J'ai réfléchi. Il est possible d'utiliser les ressources d'autres programmes. La solution est probablement là-dedans. Je vais regarder dans la documentation.