PDA

Ver la versión completa : pregunta simple de codificación ...



bulcinea2757
14:37,
Hola, lo siento por esta pregunta tonta, pero me ayuda por favor aquí:

Si tiene algún indicador que se compone de 1 línea en la ventana del gráfico, y ahora le gustaría incluir bandas de desviación estándar para esa alineación, como las bandas de Bollinger. Cómo haces esto:
digamos que su buffer que traza su indicador inicial se llama abc
así que primero anuncias que estos:
extern int BandsPeriod = 20;
extern int BandsShift = 0;
extern dual BandsDeviations = 2.0;
1) cambias
#property indior_buffers 1 (1 se convierte en 3)
dos)
SetIndexBuffer (0, abc);
SetIndexStyle (0, DRAW_LINE);
e incluir
SetIndexBuffer (1, UpperBuffer);
SetIndexStyle (1, DRAW_LINE);
SetIndexBuffer (2, LowerBuffer);
SetIndexStyle (2, DRAW_LINE);
SetIndexDrawBegin (0, BandsPeriod BandsShift);
SetIndexDrawBegin (1, BandsPeriod BandsShift);
3) incluye el resto del código de bandas de bollinger en el bucle de inicialización
int begin ()
{
int I, k, counted_bars = IndiorCounted ();
doble desviación, suma, oldval, newres;

//-
if (Barslt; = BandsPeriod) return (0);
//- cero inicial
if (counted_barslt; 1)
etc ....
4) pero ¿cómo diablos reemplazas el buffer llamado MovingBuffer en el primer código de bands.mq4 de tu nuevo buffer desde tu indicador, llamado abc?

¿Cuál es la mejor manera de hacerlo?
¿Debería tratar de obtener mi código de indicador para el código de bands.mq4 o de otra manera?

Conecté un código conocido llamado bands.mq4 para que pueda ver con qué estoy trabajando.

Nuevamente, perdón por la ignorancia de la codificación

Tal vez alguien sabe de una 'incorporación de tutoriales de círculos stdev'? Eso sería exactamente lo que necesito. Gracias

Launa2562
10:04,
Hola, disculpe la estúpida pregunta, pero me ayuda por favor aquí: si tiene algún indicador que se compone de 1 línea en la ventana del gráfico, y también quiere agregar anillos de desviación estándar a esta alineación, como las bandas de Bollinger. ¿Cómo lo hace?: Digamos que su memoria intermedia que traza su indicador inicial se llama abc así que primero declara esto: extern int BandsPeriod = 20; extern int BandsShift = 0; extern double BandsDeviations = 2.0; 1) altera #property indior_buffers 1 (1 se convierte en 3) 2) SetIndexBuffer (0, abc); SetIndexStyle (0, DRAW_LINE); y agregue SetIndexBuffer (1, UpperBuffer); SetIndexStyle (1, DRAW_LINE); SetIndexBuffer (2, LowerBuffer); SetIndexStyle (2, DRAW_LINE); SetIndexDrawBegin (0, BandsPeriod BandsShift); SetIndexDrawBegin (1, BandsPeriod BandsShift); 3) ...
utilizar el ítem iBandsOnArray: iBandsOnArray (array [], complete, period, desviation, bands_shift, mode, shift) array es claramente su indicador inicial, simplemente ponga cuñas de toda la parte, el período y las desviaciones son evidentes, el cambio será probablemente cero, el estilo es el lugar donde seleccionas MODE_UPPER o MODE_LOWER dependiendo de la banda, y shift será 0 o I, tu elección. Solo haz dos de estos, uno para el anillo superior, uno para el anillo inferior. Actualización: Aquí hay un ejemplo del código: #property indior_separate_window #property indior_buffers 3 #property indior_color1 Crimson #property indior_color2 White #property indior_color3 White/- inputs extern int Stoch_Period = 5; extern int Bands_Period = 20; extern int Desviaciones = 2;/- buffers double StochBuffer []; double UpperBuffer []; double LowerBuffer []; int init ()/---------- SetIndexStyle (0, DRAW_LINE); SetIndexBuffer (0, StochBuffer);/---------- SetIndexStyle (1, DRAW_LINE); SetIndexBuffer (1, UpperBuffer);/---------- SetIndexStyle (2, DRAW_LINE); SetIndexBuffer (2, LowerBuffer); IndiorShortName (Ejemplo Stoch-Bands ( Stoch_Period , Bands_Period , Deviations ));/---------- return (0); int start () int límite; int counted_bars = IndiorCounted ();/- if (counted_barsgt; 0) counted_bars--; restrict = Bars-counted_bars;/- for (int I = 0; ilt; limit; I ) StochBuffer [I] = iStochastic (NULL, 0, Stoch_Period, 3,3, MODE_SMA, PRICE_CLOSE, 0, I);/- for (I = 0; ilt; limit; I ) UpperBuffer [I] = iBandsOnArray (StochBuffer, Bars, Bands_Period, Deviations, 0, MODE_UPPER, I);/- for (I = 0; ilt; limit; I ) LowerBuffer [I] = iBandsOnArray (StochBuffer, Bars, Bands_Period, Deviations, 0, MODE_LOWER, I);/- return (0);/ ----------------------------------------------- -------------------

K6T9
11:25,
use la función iBandsOnArray: rango de iBandsOnArray (rango [], completo, período, desviación, desplazamiento de banda, modo, cambio) es obviamente su indicador original, simplemente ponga cuñas de la parte total, el período y las desviaciones son obvias, el cambio probablemente será cero , el modo es donde selecciona MODE_UPPER o MODE_LOWER según la banda, y shift será I o 0, su propia selección. Solo haz dos de estos, uno para la banda superior, uno para la banda menor.
Esa es la buena manera, B, pero el único problema es butbandsonarray - int iBandsOnArray (array doble [], int total, int period, int deviation, en el caso de que necesite dual - o stDev o iCustom - Bandas - como HA va estándar y es dual

bulcinea2757
12:46,
Gracias chicos, voy a trabajar en esto.