[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 181

 
Daddy >>:

Всем привет, помогите сюда сделать alert


if(ShowNumbers)
{
ObjectCreate("thirteenth"+i,OBJ_TEXT,0,Time[i],High[i]+add);
ObjectSetText("thirteenth"+i,""+13,14,"Arial",Sell);

"чтобы был еще здесь сигнал"
}
}

а то у меня не получаеться., заранее спасибо.





Наверное так:



extern string AlertWav = "alert.wav";


// ----------------------------------------------------------
...
start() {


if(ShowNumbers) {
   ObjectCreate("thirteenth"+i,OBJ_TEXT,0,Time[i],High[i]+add);
   ObjectSetText("thirteenth"+i,""+13,14,"Arial",Sell);

// "чтобы был еще здесь сигнал"
   if(i<=0) {
      if (AlertSound == true   &&   isNewBar() ) {
         PlaySound(AlertWav);
      } // if (AlertSound == true   &&   isNewBar() ) {
   } // if(i<=0)

} // if(ShowNumbers) {


...

   return;
} // start
// ----------------------------------------------------------



// ----------------------------------------------------------
int expBars;
bool res;

// возвращает true если появлися новый бар, иначе false 
bool isNewBar() {
   bool res = false; 

   if (expBars != Bars) {
      expBars = Bars;
      res = true;
   } 

   return(res);
}
// ----------------------------------------------------------





 
Доброго всем дня. Подскажите пожалуйста хороший флэтовский индикатор. Заранее благодарен
 
grego >>:
Доброго всем дня. Подскажите пожалуйста хороший флэтовский индикатор. Заранее благодарен

В смысле, чтобы хорошо работал на флете? Тогда любой осциллятор, например RSI или Stochastic.

 
Да чтобы показывал флэт,а самое главное чтоб вовремя открывал флэт тоесть показывал его концовку. Только что нашол один с РСИ - Вы такой имели ввиду?
Файлы:
 
grego >>:
Доброго всем дня. Подскажите пожалуйста хороший флэтовский индикатор. Заранее благодарен

Почитайте об Индикаторе BOLLINGER BANDS. По-моему это лучшее решение для Вас.

 

//---------------------------------------------------------------------------

#include <windows.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

#ifndef FALSE
#define FALSE 0
#define TRUE 1
#endif

#define MENUCODE -999

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  return 1;
}
//---------------------------------------------------------------------------
/* ------------------------------------------------------------------------- */




static double Thresholds[] =
{

/* layer 1 */
1.2145040659995765, 3.7150897132033802, 0.59454351593610577, 0.31822673978973876,

/* layer 2 */
1.0261447433298005

};

static double Weights[] =
{

/* layer 1 */
-1.1141264237664898, -1.5504305146313317, 0.73286159338154766, -1.2788684374991517,
-0.61641073399851731,
0.69072562217776923, -0.22241781292722679, 0.71682200719453848, 0.0017560026910527838,
2.1540691697208927,
-0.99116459059236506, -0.054704110029000053, -1.2382645587627006, -2.9685995454576384,
-1.1411725616914337,
-0.043297251827266285, -0.066167428785390461, -0.020875395803372929, -0.11405333458161644,
1.8579545370330088,

/* layer 2 */
-0.97811177652242753, 2.8971789204781668, -1.8332145813941754, 2.2454948857766635

};

static double Acts[20];

__declspec(dllexport) double __stdcall Run( double inputs[], double sd, int outputType )
{
  int i, j, k, u;
  double *w = Weights, *t = Thresholds;

  /* Process inputs - apply pre-processing to each input in turn,
  * storing results in the neuron activations array.
  */

  /* Input 0: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[0] == -9999 )
  Acts[0] = 0.35852063342998086;
  else
  Acts[0] = inputs[0] * 7.2056492289955321 + -6.0600951145698216;

  /* Input 1: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[1] == -9999 )
  Acts[1] = 0.35857336433909737;
  else
  Acts[1] = inputs[1] * 7.204610951008644 + -6.0590778097982696;

  /* Input 2: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[2] == -9999 )
  Acts[2] = 0.35851878147446925;
  else
  Acts[2] = inputs[2] * 7.204610951008644 + -6.0590778097982696;

  /* Input 3: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[3] == -9999 )
  Acts[3] = 0.35847796574053348;
  else
  Acts[3] = inputs[3] * 7.204610951008644 + -6.0590778097982696;

  /* Input 4: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[4] == -9999 )
  Acts[4] = 0.35964573508254105;
  else
  Acts[4] = inputs[4] * 7.231703789412788 + -6.0820075209719429;

  /*
  * Process layer 1.
  */

  /* For each unit in turn */
  for ( u=0; u < 4; ++u )
  {
  /*
  * First, calculate post-synaptic potentials, storing
  * these in the Acts array.
  */

  /* Initialise hidden unit activation to zero */
  Acts[5+u] = 0.0;

  /* Accumulate weighted sum from inputs */
  for ( i=0; i < 5; ++i )
  Acts[5+u] += *w++ * Acts[0+i];

  /* Subtract threshold */
  Acts[5+u] -= *t++;

  /* Now apply the hyperbolic activation function, ( e^x - e^-x ) / ( e^x + e^-x ).
  * Deal with overflow and underflow
  */
  if ( Acts[5+u] > 100.0 )
  Acts[5+u] = 1.0;
  else if ( Acts[5+u] < -100.0 )
  Acts[5+u] = -1.0;
  else
  {
  double e1 = exp( Acts[5+u] ), e2 = exp( -Acts[5+u] );
  Acts[5+u] = ( e1 - e2 ) / ( e1 + e2 );
  }
  }

  /*
  * Process layer 2.
  */

  /* For each unit in turn */
  for ( u=0; u < 1; ++u )
  {
  /*
  * First, calculate post-synaptic potentials, storing
  * these in the Acts array.
  */

  /* Initialise hidden unit activation to zero */
  Acts[9+u] = 0.0;

  /* Accumulate weighted sum from inputs */
  for ( i=0; i < 4; ++i )
  Acts[9+u] += *w++ * Acts[5+i];

  /* Subtract threshold */
  Acts[9+u] -= *t++;

  /* Now apply the logistic activation function, 1 / ( 1 + e^-x ).
  * Deal with overflow and underflow
  */
  if ( Acts[9+u] > 100.0 )
  Acts[9+u] = 1.0;
  else if ( Acts[9+u] < -100.0 )
  Acts[9+u] = 0.0;
  else
  Acts[9+u] = 1.0 / ( 1.0 + exp( - Acts[9+u] ) );
  }

  /* Type of output required - selected by outputType parameter */
  /* Post-process output 0, numeric linear scaling */
  sd = ( Acts[9] - -5.4031700288184421 ) / 6.4841498559077788;

  return (sd);
  }

это код dll компилится без ошибок в борлагд 6

//+------------------------------------------------------------------+
//| nero.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"
#import "2.dll"
double Run( double inputs[], double sd, int outputType );
#import
double sd;
int outputType;
double inputs[];
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
  {
//----
 double inputs[4]={0.5235,0.3254,0.21422,0.32123,0.32156};  
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
  {
//----
  
  
  double d=Run( inputs, sd, outputType );
  Print (d);
  
//----
  return(0);
  }
//+------------------------------------------------------------------+

код советника который его вызывает 

2009.08.07 20:38:48 2009.08.06 00:00 nero EURGBP,M15: cannot call function 'Run' from dll '2.dll' (error 127)

лог тестера ??

почему?

все компилится без ошибок, в терминале везде включена загрузка dll 

хелп ********

 

//---------------------------------------------------------------------------

#include <windows.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

#ifndef FALSE
#define FALSE 0
#define TRUE 1
#endif

#define MENUCODE -999

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  return 1;
}
//---------------------------------------------------------------------------
/* ------------------------------------------------------------------------- */




static double Thresholds[] =
{

/* layer 1 */
1.2145040659995765, 3.7150897132033802, 0.59454351593610577, 0.31822673978973876,

/* layer 2 */
1.0261447433298005

};

static double Weights[] =
{

/* layer 1 */
-1.1141264237664898, -1.5504305146313317, 0.73286159338154766, -1.2788684374991517,
-0.61641073399851731,
0.69072562217776923, -0.22241781292722679, 0.71682200719453848, 0.0017560026910527838,
2.1540691697208927,
-0.99116459059236506, -0.054704110029000053, -1.2382645587627006, -2.9685995454576384,
-1.1411725616914337,
-0.043297251827266285, -0.066167428785390461, -0.020875395803372929, -0.11405333458161644,
1.8579545370330088,

/* layer 2 */
-0.97811177652242753, 2.8971789204781668, -1.8332145813941754, 2.2454948857766635

};

static double Acts[20];

__declspec(dllexport) double __stdcall Run( double inputs[], double sd, int outputType )
{
  int i, j, k, u;
  double *w = Weights, *t = Thresholds;

  /* Process inputs - apply pre-processing to each input in turn,
  * storing results in the neuron activations array.
  */

  /* Input 0: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[0] == -9999 )
  Acts[0] = 0.35852063342998086;
  else
  Acts[0] = inputs[0] * 7.2056492289955321 + -6.0600951145698216;

  /* Input 1: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[1] == -9999 )
  Acts[1] = 0.35857336433909737;
  else
  Acts[1] = inputs[1] * 7.204610951008644 + -6.0590778097982696;

  /* Input 2: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[2] == -9999 )
  Acts[2] = 0.35851878147446925;
  else
  Acts[2] = inputs[2] * 7.204610951008644 + -6.0590778097982696;

  /* Input 3: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[3] == -9999 )
  Acts[3] = 0.35847796574053348;
  else
  Acts[3] = inputs[3] * 7.204610951008644 + -6.0590778097982696;

  /* Input 4: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[4] == -9999 )
  Acts[4] = 0.35964573508254105;
  else
  Acts[4] = inputs[4] * 7.231703789412788 + -6.0820075209719429;

  /*
  * Process layer 1.
  */

  /* For each unit in turn */
  for ( u=0; u < 4; ++u )
  {
  /*
  * First, calculate post-synaptic potentials, storing
  * these in the Acts array.
  */

  /* Initialise hidden unit activation to zero */
  Acts[5+u] = 0.0;

  /* Accumulate weighted sum from inputs */
  for ( i=0; i < 5; ++i )
  Acts[5+u] += *w++ * Acts[0+i];

  /* Subtract threshold */
  Acts[5+u] -= *t++;

  /* Now apply the hyperbolic activation function, ( e^x - e^-x ) / ( e^x + e^-x ).
  * Deal with overflow and underflow
  */
  if ( Acts[5+u] > 100.0 )
  Acts[5+u] = 1.0;
  else if ( Acts[5+u] < -100.0 )
  Acts[5+u] = -1.0;
  else
  {
  double e1 = exp( Acts[5+u] ), e2 = exp( -Acts[5+u] );
  Acts[5+u] = ( e1 - e2 ) / ( e1 + e2 );
  }
  }

  /*
  * Process layer 2.
  */

  /* For each unit in turn */
  for ( u=0; u < 1; ++u )
  {
  /*
  * First, calculate post-synaptic potentials, storing
  * these in the Acts array.
  */

  /* Initialise hidden unit activation to zero */
  Acts[9+u] = 0.0;

  /* Accumulate weighted sum from inputs */
  for ( i=0; i < 4; ++i )
  Acts[9+u] += *w++ * Acts[5+i];

  /* Subtract threshold */
  Acts[9+u] -= *t++;

  /* Now apply the logistic activation function, 1 / ( 1 + e^-x ).
  * Deal with overflow and underflow
  */
  if ( Acts[9+u] > 100.0 )
  Acts[9+u] = 1.0;
  else if ( Acts[9+u] < -100.0 )
  Acts[9+u] = 0.0;
  else
  Acts[9+u] = 1.0 / ( 1.0 + exp( - Acts[9+u] ) );
  }

  /* Type of output required - selected by outputType parameter */
  /* Post-process output 0, numeric linear scaling */
  sd = ( Acts[9] - -5.4031700288184421 ) / 6.4841498559077788;

  return (sd);
  }

это код dll компилится без ошибок в борлагд 6

//+------------------------------------------------------------------+
//| nero.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"
#import "2.dll"
double Run( double inputs[], double sd, int outputType );
#import
double sd;
int outputType;
double inputs[];
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
  {
//----
 double inputs[4]={0.5235,0.3254,0.21422,0.32123,0.32156};  
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
  {
//----
  
  
  double d=Run( inputs, sd, outputType );
  Print (d);
  
//----
  return(0);
  }
//+------------------------------------------------------------------+

код советника который его вызывает 

2009.08.07 20:38:48 2009.08.06 00:00 nero EURGBP,M15: cannot call function 'Run' from dll '2.dll' (error 127)

лог тестера ??

почему?

все компилится без ошибок, в терминале везде включена загрузка dll 

хелп ********

 
Здравствуйте,

У меня на графике этот индикатор не отображаетса, перепробывал всё, у всех к кому обращялся DT-ZigZag на графике отображаетса, подскажите в чём проблема. Спасибо.

https://www.mql5.com/ru/code/7266

 
Koly >>:
Здравствуйте,

У меня на графике этот индикатор не отображаетса, перепробывал всё, у всех к кому обращялся DT-ZigZag на графике отображаетса, подскажите в чём проблема. Спасибо.

https://www.mql5.com/ru/code/7266


в индикаторе это - "DT-ZigZag: Текущий таймфрейм должен быть меньше чем ", GrossPeriod единственная причина его возможного неотображения!

 
chief2000 >>:

Почитайте об Индикаторе BOLLINGER BANDS. По-моему это лучшее решение для Вас.

Добрый день.Нет с болиндер не совсем то. Попробую объяснить ситуацию на графике. Вы видете две линии фракталов работающие на пробой. Всё бы ничего если бы не Флэт. Во время флэта, хорошо видно на графике, цепляет то, одну то другую сторону возвращается в канал и стопом сливает и это 3-4 раза за флэт. Я закрыл одну сторону Стохом тоесть когда больше 80 закрыт бай, а менше 20 закр. Селл, но другая сторона открыта там то 2-3 раза и зацепит. Мне же надо индюк показывающий Флэт и обе стороны закрывал, а ещё лучше зделать на этот момент переваротные ордера чтобы торговалось внутри канала. Может кто подскажет каким индюком можно было реализовать такую проблему.?

Причина обращения: