[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 313

 

gyfto, le script de test du kit fonctionne-t-il pour vous ?

Je l'aurais fait :

//в шапке
#include <SharedMemoryMT4.mqh>
//в инит. Создание и открытие не обязательно. Эти функции для ускорения работы с памятью.
MemoryCreate(1, "", NULL, -1, "ind", 60*GlobalVariableGet("ADXBars"));
// Вариант более быстрый, чем выше:
MemoryCreateProjection(1, "", NULL, -1, "ind", 60*GlobalVariableGet("ADXBars"));

//в деинит
MemoryCloseName(1, "", "ind");
//в старт вместо 
for(; i<Σ; i++) MemoryWriteInt(1, "", -1, "ind", i * 4, iBars(sn, 1));//ind[i]=iBars(sn, 1);
#property show_inputs
#include <SharedMemoryMT4.mqh>
extern int x;//сколько секунд назад с данного момента прикрепления смотрим значения TOLHCV

int init()
  {
//   MemoryOpen(1, "", -1, "ind"); // Это не требуется.
   return(0);
  }
int start()
  {
   //MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1
   int n=MemoryReadInt(1, "", -1, "ind", GlobalVariableGet("final"))-MemoryReadInt(1, "", -1, "ind", GlobalVariableGet("final")-x)+1;
   Alert(TimeToStr(TimeCurrent(),TIME_SECONDS), ": Time=", TimeToStr(Time[n], TIME_SECONDS), ", Open=", Open[n], ", High=", High[n], ", Low=", Low[n], ", Close=", Close[n], ", Volume=", Volume[n]);
   return(0);
  }

Le reste est correct. Je ne suis pas entré dans le protocole de transfert de données seulement.

La création, l'ouverture et l'allocation de la mémoire sont facultatives. Ces fonctions sont destinées à accélérer la gestion de la mémoire. Pour le fonctionnement le plus simple de la bibliothèque, vous n'avez besoin que des fonctions de lecture et d'écriture. La bibliothèque se chargera du reste. De plus, vous pouvez lire avant d'écrire. La mémoire de la taille demandée sera allouée et la fonction retournera zéro. Puisqu'il n'y a encore rien.

 

Zhunko, je ne pense pas. Comment() ne produit pas de résultats, il écrit seulement dans le journal, dans le journal :

15:51:13 Check_SharedMemoryMT4.dll AUDUSD,M1 inputs: Area=1; InitPrefix=""; UserGlobal=25; UserTerminal=50; UserWindow=100; CheckWriteRead=false; CheckWrite=false; CheckRead=false; CheckGeneral=false
CheckProjection=false; CheckClose=false; NamePrefix="Check"; NameMemory0="CheckMemory0"; NameMemory1="CheckMemory1"; NameMemory2="CheckMemory2"; NameMemory3="CheckMemory3"; NameMemory4="Memory4"
Index=-1; StartByte=0; MemorySize=64000; bValue=true; cValue=123; ucValue=255; shValue=32100; ushValue=65535; nValue=2147012345; fValue=1234.56789012; dValue=1234.56789012; sValue0="Контроль = 1234.56789"
sValue1="Контроль = 9876.54321"; sValue2="Привет мир!!!"; sValue3="Миру мир!"; sValue4="Неправильное  имя";

C'est tout sur une ligne, je l'ai déplacé ici pour qu'il n'y ait pas de largeur d'écran anormale ici.

 
gyfto:

Zhunko, je ne pense pas. Comment() ne produit pas de résultats, il écrit seulement dans le journal, dans le journal :

C'est tout sur une ligne, je l'ai déplacé ici pour qu'il n'y ait pas de largeur d'écran anormale ici.

Jetez un coup d'œil à la vidéo. Faites exactement la même chose. Si ça ne marche pas, on trouvera une solution. Ça marche pour moi.
 
Je suis probablement sur le point de gagner un concours de l'erreur la plus stupide. Je n'avais pas déclaré la variable ADXBars GV, j'ai donc écrit "erreur de méthode". De plus, il n'y avait pas d'alignement sur la frontière int. Mais l'alerte sort toujours tous les zéros, avec ou sans alignement. Je vais regarder la vidéo et essayer de comprendre par moi-même d'abord. Si j'échoue, nous essaierons de trouver une solution ensemble.
 

TarasBY artmedia70 hoz

Merci messieurs les officiers !

 
CYBOPOB:

TarasBY artmedia70 hoz

Merci messieurs les officiers !

Vous vous êtes tiré dessus ? :)))
 
artmedia70:
Quoi, tu t'es tiré dessus ? :)))


Deux fois 8-[
 

Bonjour, veuillez m'aider sur ce sujet :

https://www.mql5.com/ru/forum/144634

Merci beaucoup !

 

J'ai eu cette putain d'erreur moi-même. En fait, il n'y a pas de logique du tout. Pour ouvrir un ordre en suspens selonhttps://book.mql4.com/ru/appendix/limits, le prix d'ouverture doit être soit inférieur au Bid (pour la vente), soit supérieur au Ask (pour l'achat). Je fais ce qui est demandé.

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = -1;
   double OOP = High[1] + i_thresholdToUp * pt;
   pr ("ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);

   if (ND(OOP) > Ask)
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0, CLR_NONE);
   else pr ("Ордер послать не удалось " + GetLastError());
   
   if (ticket > 0)
   {
       lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                            // .. успешно выполнены
       return (true);
   }
}

De temps en temps, je reçois des erreurs 0 et 130. Bien que 130 soit une erreur d'arrêt erroné, qui peut se produire pendant la modification, mais pas pendant l'ouverture de l'ordre.

Sur la capture d'écran, la situation et l'impression affichées à l'aide de la fonction pr.

Erreur d'arrêt mal placé

Veuillez m'indiquer comment me débarrasser de ce bogue. Je suis vraiment malade et fatigué de cette erreur. Logiquement, il n'est pas du tout sur le sujet.

 
hoz:

J'ai eu cette putain d'erreur moi-même. En fait, il n'y a pas de logique du tout. Pour ouvrir un ordre en suspens selonhttps://book.mql4.com/ru/appendix/limits, le prix d'ouverture doit être soit inférieur au Bid (pour la vente), soit supérieur au Ask (pour l'achat). Je fais ce qui est demandé.

De temps en temps, je reçois des erreurs 0 et 130. Bien que 130 soit une erreur d'arrêt erroné, qui peut se produire pendant la modification, mais pas pendant l'ouverture de l'ordre.

Sur la capture d'écran, la situation et l'impression affichées à l'aide de la fonction pr.

Veuillez m'indiquer comment me débarrasser de ce bogue. Je suis vraiment malade et fatigué de cette erreur. Logiquement, il n'est pas du tout sur le sujet.

Victor, outre la conformité au-dessus et au-dessous, il faut utiliser la compensation préventive, car pendant l'envoi de l'ordre, le prix n'est pas immobile, ce qui fait que l'on fait un pas ou un pas dans la zone interdite ! Insérez comme en modification et un plus grand glissement, et vous serez bien ! Travailler sur Real sans aucune erreur ! Bonne chance !