[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 181

 
Daddy >> :

Ei, pessoal, ajudem-me aqui.


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

"então ainda há um sinal aqui"
}
}

porque não posso fazer isso. Obrigado antecipadamente.





Deve ser isto:



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);
}
// ----------------------------------------------------------





 
Bom dia a todos. Por favor, me aconselhe um bom indicador de flat. Agradecemos antecipadamente.
 
grego >> :
Bom dia a todos. Você pode me aconselhar um bom indicador de flat. Agradeço antecipadamente.

O que você quer dizer - um indicador que funciona bem em flat? Depois, qualquer oscilador, por exemplo, RSI ou Stochastic.

 
Sim, para mostrar o apartamento, e o mais importante, para abrir o apartamento a tempo, ou seja, para mostrar seu fim. Acabei de encontrar um com RSI - é isso que você quer dizer?
Arquivos anexados:
 
grego >> :
Bom dia para todos. Por favor, me aconselhe um bom Indicador de Taxa Plana. Obrigado de antemão.

Leia sobre o indicador BOLLINGER BANDS. Acho que é a melhor solução para você.

 

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

#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);
}

este código dll é compilado sem erros no borlagd 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);
}
//+------------------------------------------------------------------+

código do conselheiro que o chama

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

registro do testador ?

por quê?

tudo se compila sem erros, o carregamento da dll está habilitado em todos os lugares do terminal

ajuda ********

 

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

#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);
}

este código dll é compilado sem erros no borlagd 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);
}
//+------------------------------------------------------------------+

código do conselheiro que o chama

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

registro do testador ?

por quê?

tudo se compila sem erros, o carregamento da dll está habilitado em todos os lugares do terminal

ajuda ********

 
Olá,

Não vejo este indicador no gráfico, já tentei de tudo, todos que contatei exibem DT-ZigZag no gráfico, por favor, informe qual é o problema. Por favor, diga-me qual é o problema. Obrigado.

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

 
Koly >> :
Olá,

Eu não vejo este indicador no gráfico, eu tentei de tudo, todos que eu contatei exibem DT-ZigZag no gráfico, por favor, informe qual é o problema. Por favor, diga-me qual é o problema. Obrigado.

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


No indicador este é "DT-ZigZag: O tempo atual deve ser inferior a ", período bruto a única razão pela qual ele não pode ser exibido!

 
chief2000 >> :

Leia sobre o indicador BOLLINGER BANDS. Acho que esta é a melhor solução para você.

Boa tarde. Não, não exatamente com o Bollinger. Vou tentar explicar a situação na tabela. Você vê duas linhas fractais trabalhando para avarias. Tudo estaria bem se não fosse o Flat. Durante o flat, bem visto na tabela, então um ou outro lado retorna ao canal e pára de cair e é 3-4 vezes no flat. Eu fechei um lado por Stop quando há mais de 80 compras fechadas e menos de 20 fechadas. Vender, mas o outro lado está aberto e há 2-3 vezes e ele vai pegar. Eu também preciso usar um indicador que mostre plano e ambos os lados fechados, e melhor ainda, eu deveria fazer pedidos de alerta neste momento para negociar dentro do canal. >> Talvez alguém me diga que ferramenta pode me ajudar a fazer isto.

Razão: