Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 975

 
Alexandr Sokolov:

J'ai eu une idée, j'ai besoin de beaucoup de cycles, donc j'ai décidé de vérifier la vitesse de cette façon.

... En conséquence, MT5 cesse de fonctionner, présente des problèmes et je dois le fermer via le gestionnaire des tâches.


Est-ce un problème de puissance de mon ordinateur ou autre chose ?


*PS - Je veux essayer d'écrire un réseau neuronal, et il y aura des milliards de cycles, et ici je vais par un million.

Mais je l'ai attrapé deux fois sans aucun problème, mais si je le répète à nouveau, il y a un problème (script dans les fichiers joints).

Dossiers :
zsbh.mq5  7 kb
 
Alexandr Sokolov:

J'ai eu une idée, j'ai besoin de beaucoup de cycles, donc j'ai décidé de vérifier la vitesse de cette façon.

... En conséquence, MT5 cesse de fonctionner, présente des problèmes et je dois le fermer via le gestionnaire des tâches.


Est-ce un problème de puissance de mon ordinateur ou autre chose ?


*PS - Je veux essayer d'écrire un réseau neuronal, et ce sera des milliards de cycles, et là je vais m'allonger par un million.

n'essayez pas :-)

ou plutôt, écrivez d'abord quelque chose de plus simple

Parce que le problème réside dans le manque de compréhension de ce que vous écrivez et de son fonctionnement en général.

 
Maxim Kuznetsov:

n'essayez pas :-)

ou plutôt, écrivez d'abord quelque chose de simple

parce que le problème réside dans le manque de compréhension de ce que vous écrivez et de son fonctionnement en général.

Ce script n'est pas un réseau de neurones)) Je l'ai créé pour voir à quelle vitesse un million de cycles passent.


Mais pourquoi le terminal est-il défectueux ? Le script commence à fonctionner (les chiffres s'exécutent), mais je n'arrive pas à la fin (du moins pour moi).

 
Bonjour, messieurs les programmateurs. Veuillez me conseiller. J'essaie d'écrire un indicateur de flèche basé sur des modèles de renversement et autres. Il semble que tout soit en ordre. Cependant, il ne prend en compte que les 2 premiers chandeliers au lieu de 4. Lors de la compilation, l'éditeur jure sur une éventuelle perte de précision lors de l'attribution de différents types de données. Et seulement sur iVolume. Merci d'avance.
 
35vas35:
Bonjour, messieurs les programmateurs. Veuillez me conseiller. J'essaie d'écrire un indicateur de flèche basé sur des modèles de renversement et autres. Il semble que tout soit en ordre. Cependant, il ne prend en compte que les 2 premiers chandeliers au lieu de 4. Lors de la compilation, l'éditeur jure sur une éventuelle perte de précision lors de l'attribution de différents types de données. Et seulement sur iVolume. Merci d'avance.

Ici.

 
Artyom Trishkin:

Ici.

Voici le code de l'indicateur.
//+------------------------------------------------------------------+
//|                                                       Figaro.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2     
#property indicator_color1 Blue   
#property indicator_color2 Red    
double Buy[];                   
double Sell[];                  
#define  BUY 0
#define  SELL 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{

SetIndexBuffer (0, Buy);
SetIndexBuffer (1, Sell);  

SetIndexEmptyValue (0, 0);
SetIndexEmptyValue (1, 0);

SetIndexStyle (0, DRAW_ARROW);
SetIndexStyle (1, DRAW_ARROW); 
SetIndexArrow(0, 233);  // Стрелка "вверх" для покупок
SetIndexArrow(1, 234);  // Стрелка "вниз" для продаж

IndicatorDigits (Digits);

IndicatorShortName ("FIGARO");

SetIndexLabel(0, "Покупаем");
SetIndexLabel(1, "Продаём");

return(INIT_SUCCEEDED);

}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{

int counted_bars = IndicatorCounted();
int limit, signal;

if (counted_bars>0) 
counted_bars-- ;

limit=Bars-counted_bars;

for(int i = 2; i < limit; i++) 
{
signal = Signal(i-1);
if (signal == BUY)
{ 
Buy[i-1] = low[i-1];
}
else
if (signal == SELL)
{
Sell[i-1] = high[i-1];
}
}
return(rates_total); } 
//+------------------------------------------------------------------+
int Signal(int i)
{
     double O_1 = iOpen(Symbol(), 0, 1);
     double O_2 = iOpen(Symbol(), 0, 2);
     double O_3 = iOpen(Symbol(), 0, 3);
     double O_4 = iOpen(Symbol(), 0, 4);
     double C_1 = iClose(Symbol(), 0, 1);
     double C_2 = iClose(Symbol(), 0, 2);
     double C_3 = iClose(Symbol(), 0, 3);
     double C_4 = iClose(Symbol(), 0, 4);
     double H_1 = iHigh(Symbol(), 0, 1);
     double H_2 = iHigh(Symbol(), 0, 2);
     double L_1 = iLow(Symbol(), 0, 1);
     double L_2 = iLow(Symbol(), 0, 2);
     double S_1 = iVolume(NULL, 0, 1);
     double S_2 = iVolume(NULL, 0, 2);
     double S_3 = iVolume(NULL, 0, 3);
if ((O_1<C_1 && S_1>=8 && S_2==0 && O_3>C_3 && O_4>C_4 && (H_2-O_2)>=6 && (C_2-L_2)>=6) || (O_1<C_1 && S_1>=10 && O_2>C_2 && S_2>=8 && O_3>C_3 &&
O_4>C_4 && S_3>=8 && O_1<=C_2 && O_1<C_3 && O_2<C_1 && O_3<C_1) || (O_1<C_1 && O_2>C_2 && O_3>C_3 && O_4>C_4 && S_1<=1 && (O_1-L_1)>=5 && (H_1-C_1)<=2) || (O_1<C_1 && S_1>=10 &&
O_2>C_2 && O_3>C_3 && S_2>=10 && S_1>=S_2*0.6 && O_1<C_2 && (H_1-C_1)<=2 && (O_1-L_1)<=2 && (H_2-O_2)<=2 && (C_2-L_2)<=2) || (O_1<C_1 && S_1>=10 && O_2>C_2 &&
S_2>=8 && C_1<=C_2 && (H_1-C_1)<=2 && (O_1-L_1)<=2 && (H_2-O_2)<=2 && (C_2-L_2)<=2))
     
     return (BUY);
     
if ((O_1>C_1 && S_1>=8 && S_2==0 && O_3<C_3 && O_4<C_4 && (H_2-O_2)>=6 && (C_2-L_2)>=6) || (O_1>C_1 && S_1>=10 && O_2<C_2 && O_3<C_3 && O_4<C_4 &&
S_2>=8 && S_3>=8 && O_1>=C_2 && O_1>C_3 && O_2>C_1 && O_3>C_1) || (O_1>C_1 && O_2<C_2 && O_3<C_3 && O_4<C_4 && S_1<=1 && (C_1-L_1)>=5 && (H_1-O_1)<=2) || (O_1>C_1 && S_1>=10 && 
O_2<C_2 && O_3<C_3 && O_4<C_4 && S_2>=10 && S_1>=S_2*0.6 && O_1>C_2 && (H_1-O_1)<=2 && (C_1-L_1)<=2 && (H_2-C_2)<=2 && (O_2-L_2)<=2) || (O_1>C_1 && S_1>=10 && O_2<C_2 &&
O_3<C_3 && O_4<C_4 && S_2>=8 && C_1>=C_2 && (H_1-O_1)<=2 && (C_1-L_1)<=2 && (H_2-C_2)<=2 && (O_2-L_2)<=2))

     return (SELL);
     
     return(-1);
     
}
 

35vas35:
Вот код индикатора.

Le problème est que, comme vous pouvez le voir sur le graphique, le volume de 3 bougies à partir du signal d'achat est de 3 points. Mais dans le code, le volume est prescrit à partir de 8 et plus.

 
35vas35:

Le problème est que, comme vous pouvez le voir sur le graphique, le volume de 3 bougies à partir du signal d'achat est de 3 points. Mais dans le code, le volume est prescrit à partir de 8 et plus.

À l'avenir, je souhaite joindre un mailing ou un sms. J'ai essayé d'écrire un EA avec des indicateurs MACD, MA, et RSI en utilisant ce principe. Il y a peu de faux signaux. Mais j'aimerais contrôler le processus moi-même.
 
35vas35:
À l'avenir, je souhaite lier la lettre d'information à un e-mail ou à un sms. J'ai essayé d'écrire un EA avec des indicateurs MACD, MA, et RSI en utilisant ce principe. Il y a peu de faux signaux. Mais j'aimerais contrôler le processus moi-même.
J'ai utilisé le harami, l'absorption à deux bougies, le marteau, le gap et le voile, les modèles de contre-attaque comme base.