[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 940

 
extern double SL=20; // SL для открываемого ордера
extern double TP=20; // ТР для открываемого ордера
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;

double
M_0,
M_1;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;


// Торговые критерии

M_0=iOsMA(NULL,0,13,34,8,0,0); // 0 бар
M_1=iOsMA(NULL,0,13,34,8,0,1); // 1 бар



if (M_1<0 && M_0>0)
Opn_B=true;

if (M_1>0 && M_0<0)
Opn_S=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Bid-SL*Point,Bid+TP*Point);time=Time[1];}

if (Opn_S)
{OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Ask+SL*Point,Ask-TP*Point);time=Time[1];}
}


Un EA que abre una posición cuando el OsMA cruza la línea cero. No está claro dónde se abre y no está claro por qué. ¿Puede alguien mirar, tal vez un error en iOsMA(NULL,0,13,34,8,0,0)?
 
T.H.C.:

Un EA que abre una posición cuando el OsMA cruza la línea cero. No está claro dónde se abre y no está claro por qué. ¿Puede alguien mirar, tal vez un error en iOsMA(NULL,0,13,34,8,0,0)?

¿Estás probando en todas las garrapatas?
 
001:


Gracias por la respuesta. Esbozó un EA rudimentario. Sigue sin funcionar.


en este código, busque errores, la función OrderSend presione F1 traerá ayuda en el editor estándar, mira el orden de los parámetros entrantes hay un error.

+ utilizar Print / Alert para recorrer los valores de las variables, insertarlo en la sección de código después de ( asignaciones / ejecutar )

y recuerda normalizar la salida, DoubletoSt..NormalizeDouble..TimeToStr

Se adjuntan aquí 2 bibliotecas gratuitas con código de kimIV.

El código es simple, funciones ya hechas, muy bueno para los principiantes.

Archivos adjuntos:
_lib2.zip  10 kb
 

// Difícilmente un número fijo de lotes :)

 
T.H.C.:


Entonces tienes un efecto de parloteo en la barra de cero.
 
Vinin:

¿Probando en todas las garrapatas?
 

¿Cómo "parar" el flujo de disgustos a los DC?

A continuación, un extracto del registro:

10:00:25 Tic antiguo EURUSD30 1.38730/1.38740
10:00:25 Tic antiguo EURUSD240 1.38730/1.38740
10:00:25 Tic antiguo EURUSD1440 1.38730/1.38740
10:00:25 Tic antiguo EURUSD15 1.38730/1.38740
10:00:25 Tic antiguo EURUSD1 1.38730/1.38740
10:00:25 Tic antiguo EURUSD60 1.38730/1.38740
10:00:25 Tic antiguo EURUSD5 1.38730/1.38740
11:00:34 Tic antiguo EURUSD30 1.38847/1.38863
11:00:34 Tic antiguo EURUSD240 1.38847/1.38863
11:00:34 Tic antiguo EURUSD1440 1.38847/1.38863
11:00:34 Tic antiguo EURUSD15 1.38847/1.38863
11:00:34 Tic antiguo EURUSD1 1.38847/1.38863
11:00:34 Tic antiguo EURUSD60 1.38847/1.38863
11:00:34 Tic antiguo EURUSD5 1.38847/1.38863
11:25:06 Tic antiguo EURUSD30 1.38707/1.38722
11:25:06 Tic antiguo EURUSD240 1.38707/1.38722
11:25:06 Tic antiguo EURUSD1440 1.38707/1.38722
11:25:06 Tic antiguo EURUSD15 1.38707/1.38722
11:25:06 Tic antiguo EURUSD1 1.38707/1.38722
11:25:06 Tic antiguo EURUSD60 1.38707/1.38722

 
Vinin:

Entonces tienes un efecto de parloteo en la barra de cero.
¿Y qué hacer? ¿Un método menos preciso? ¿No hay otra salida? ¿Habrá charla cuando este EA funcione también?
 

¿La prueba le da dolor de cabeza?

 

//Criterios de negociación

M_0 ={ iOsMA(0,0,13,34,8,0,1) }; //| 1bar
M_1 ={ iOsMA(0,0,13,34,8,0,2) }; //| 2bar

Opn_B ={ (((M_1<0)==1) &&((M_0>0)==1) ) };
Opn_S ={ (((M_1>0)==1) &&((M_0<0)==1) ) };

Inténtalo así, pero sin el traqueteo:)

Razón de la queja: