Estoy escribiendo mi primer bot, y al mismo tiempo me estoy familiarizando con MQL. Tengo el siguiente problema durante las pruebas:
La orden OP_BUYSTOP se ejecuta justo después de la colocación de la orden, aunque a juzgar por el gráfico, el precio no alcanza el valor objetivo (véase más abajo)
№
Tiempo
Tipo
Pida
Volumen
Precio
S / L
T / P
Beneficios
Saldo
1
2011.09.19 02:10
comprar stop
1
0.01
76.935
76.735
77.135
2
2011.09.19 02:10
comprar
1
0.01
76.935
76.735
77.135
USDJPY,M5 (visual)
Fecha 2011.09.19
Hora 02:15
Abierto 76.903
Alta 76.909
Bajo 76.890
Cerrar 76.890
Volumen 66
Estoy probando todas las garrapatas.
¿Quizás no entiendo bien la orden OP_BUYSTOP? Para comprar si el precio supera un determinado valor, ¿no?
Aquí hay un poco de código fuente que hace un pedido
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
Muchas gracias a todos por adelantado.
En el gráfico de velas, todos los precios son Bid y cualquier orden de compra se ejecuta al precio Ask.
Quiero eliminar las líneas horizontales pendientes si su nivel ha sido roto por el precio actual. Otra forma de decirlo: si el nivel ha sido superado o "renegociado" ya después de la creación de OBJ_HLINE.
Gracias a Roll por la ayuda. ¿Podría decirme cómo seguir correctamente la condición de mantener el nivel en un periodo conocido?
//----------------------------------------------------------------------+ // Удаление OBJ_HLINE при пробитии его уровня /Red-Up/Blue-Down| |//----------------------------------------------------------------------+ void DelHLine( string nm="")
{
int obj_total=ObjectsTotal();
for(int i=1;i<obj_total;i++)
{
nm=ObjectName(i);
if(nm==ObjectName(i)&&ObjectType(nm)==OBJ_HLINE)
{
color cl = ObjectGet(nm,OBJPROP_COLOR);
double pl = ObjectGet(nm,OBJPROP_PRICE1);
datetime timeSet= ObjectGet(nm,OBJPROP_TIME1);
int shift = iBarShift(NULL,0,timeSet);
if((cl==Red && pl<High[iHighest(NULL,0,MODE_HIGH,shift,1)])||
(cl==Blue && pl>Low [iLowest (NULL,0,MODE_LOW, shift,1)]) ) ObjectDelete(nm);
}
}
return(0);
}
//+------------------------------------------------------------------+
Estoy empezando con la programación, así que me surgen muchas dudas, ¡gracias de antemano por su atención!
Escribí un script llamado NewScript, que realiza una función simple - mostrar los precios OHLC por barras en un gráfico...
Mi pregunta es - si BARS es exactamente el número de barras en el gráfico actual, entonces ¿por qué en mi registro EA muestra el número de barras en la pantalla (alrededor de 200), pero en mi registro más de 2000?
double Hi (int pos=0) //создали Hi, зависящую от pos
{
int i=pos; //присваиваем "i" значение от "pos", то есть i равно pos
double H=0;
while (i<=pos+10) //как она может быть меньше, если она равна?
{
if (H<iMACD (NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i)) //это мне вообще не понятно... то есть если значение "Н" будет меньше, то присваиваем...
H=iMACD (NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i); //то есть он определит мне наинизший, но не наивысший бар
i++; //ну тут мы добавляем к "i" плюс 1
}
return(H); //возвращаем Hi в самое начало
}
¡Buenos días a todos!
Estoy escribiendo mi primer bot, y al mismo tiempo me estoy familiarizando con MQL. Tengo el siguiente problema durante las pruebas:
La orden OP_BUYSTOP se ejecuta justo después de la colocación de la orden, aunque a juzgar por el gráfico, el precio no alcanza el valor objetivo (véase más abajo)
USDJPY,M5 (visual)
Fecha 2011.09.19
Hora 02:15
Abierto 76.903
Alta 76.909
Bajo 76.890
Cerrar 76.890
Volumen 66
Estoy probando todas las garrapatas.
¿Quizás no entiendo bien la orden OP_BUYSTOP? Para comprar si el precio supera un determinado valor, ¿no?
Aquí hay un poco de código fuente que hace un pedido
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
En el gráfico de velas, todos los precios son Bid y cualquier orden de compra se ejecuta al precio Ask.
Gracias.
¡Hola! Por favor, ayúdenme.
No puedo entender por qué este script no muestra los datos en excel como columnas.
Al ejecutarlo en excel, sólo aparece la cabecera de la tabla, sin datos.
Ayúdame a entender por qué el delimitador no es percibido por Excel.
Estoy empezando con la programación, así que me surgen muchas dudas, ¡gracias de antemano por su atención!
Escribí un script llamado NewScript, que realiza una función simple - mostrar los precios OHLC por barras en un gráfico...
Mi pregunta es - si BARS es exactamente el número de barras en el gráfico actual, entonces ¿por qué en mi registro EA muestra el número de barras en la pantalla (alrededor de 200), pero en mi registro más de 2000?
Gracias.
Pequeña corrección
Lo siento, no puedo entender la función...
La opción más fácil
¡Hola!
¿Puedes ayudarme a escribir el código para detener el EA por un tiempo?
Escribí el código así.
int init() {string OrderStop="OrderStop "+ Symbol();
OrderSig =GlobalVariableGet(OrderStop);
// Print (OrderSig);
return (0);
}
int deinit() {
return (0);
}
int start() {
string OrderStop="OrderStop "+ Symbol();
OrderSig = GlobalVariableGet(OrderStop);
si (OrderSig==1)return(0);
si no {
EA body(código)
}
return(0);
}
En el trailer este código funciona, pero cuando compilo o vuelvo a ejecutar Terminal,
El EA comienza a funcionar (abre la posición) y no vuelve a operar.
¿Qué puede ser?
O dime otra opción.
O sugerir otra opción.
Utiliza una f: