Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 975

 
Alexandr Sokolov:

Появилась у меня идея, нужно много циклов, решил проверить скорость таким образом

... в итоге МТ5 прекращает работу, глючит и приходится закрывать через диспетчер задач


Это проблема в мощности моего пк или в чём-то другом?


*PS - хочу попробовать написать нейросетку, а там будут миллиарды циклов, а здесь на миллион ложиться

Но два раза поймал без глюков, но если повторить снова глючит (скрипт в прикреплённых файлах)

Файлы:
zsbh.mq5  7 kb
 
Alexandr Sokolov:

Появилась у меня идея, нужно много циклов, решил проверить скорость таким образом

... в итоге МТ5 прекращает работу, глючит и приходится закрывать через диспетчер задач


Это проблема в мощности моего пк или в чём-то другом?


*PS - хочу попробовать написать нейросетку, а там будут миллиарды циклов, а здесь на миллион ложиться

не пробуйте..:-)

точнее напишите сначала что-нить попроще

потому как проблема в недопонимании что пишется и как написанное вообще работает

 
Maxim Kuznetsov:

не пробуйте..:-)

точнее напишите сначала что-нить попроще

потому как проблема в недопонимании что пишется и как написанное вообще работает

Этот скрипт это не нейросеть)) я его сделал чтобы посмотреть как быстро миллион циклов проходят


А вот почему терминал глючит? При чём скрипт начинает работу (цифры бегут), но до конца дело не доходит (по крайней мере у меня)

 
Доброго времени суток, господа программисты. Подскажите, пожалуйста. Пытаюсь написать стрелочный индикатор на основе фигур разворота и прочих. Вроде все хорошо. Но, считает он только первых 2 свечи, вместо 4. При компиляции редактор ругается о возможной потере точности при присвоении различных типов данных. Причем, только на iVolume. Заранее спасибо.
 
35vas35:
Доброго времени суток, господа программисты. Подскажите, пожалуйста. Пытаюсь написать стрелочный индикатор на основе фигур разворота и прочих. Вроде все хорошо. Но, считает он только первых 2 свечи, вместо 4. При компиляции редактор ругается о возможной потере точности при присвоении различных типов данных. Причем, только на iVolume. Заранее спасибо.

Здесь.

 
Artyom Trishkin:

Здесь.

Вот код индикатора.
//+------------------------------------------------------------------+
//|                                                       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:
Вот код индикатора.

Проблема в том, что как видно на графике, объём 3 свечи от сигнала на покупку 3 пункта. Но в коду объём прописан от 8 и выше.

 
35vas35:

Проблема в том, что как видно на графике, объём 3 свечи от сигнала на покупку 3 пункта. Но в коду объём прописан от 8 и выше.

В дальнейшем хочу привязать рассылку на почту или смс. Пробовал по такому принципу писать советник с индикаторами MACD, MA, и RSI. Ложных сигналов мало. Но хотелось бы самому контролировать процесс.
 
35vas35:
В дальнейшем хочу привязать рассылку на почту или смс. Пробовал по такому принципу писать советник с индикаторами MACD, MA, и RSI. Ложных сигналов мало. Но хотелось бы самому контролировать процесс.
За основу взяты модели харами, поглощение двух свечей, молот, просвет и завеса, контратака.
 
Дайте совет по этому вопросу https://www.mql5.com/ru/forum/160683/page974#comment_13308277
Причина обращения: