Hola, no encuentro un indicador que dibuje líneas horizontales de dos días sobre el máximo, mínimo de una vela de tiempo conocido. Dame un enlace o tal vez un esquema de un indicador.
Por favor, ¿pueden decirme por qué el EA no está operando? Póngalo en demo (sonríe) - no funciona. Parece que han eliminado la función del principio que sólo permite operar cuando se está probando.
Romano ... Me alegro de verte. Lo he probado, no funciona, no entiendo que pasa, visualmente hay un historial para el periodo anterior, pero al probarlo no hay? :/
Pulsa F2 y descarga hasta quedar inconsciente. ;))
¿Cómo se indica al programa que la barra ha tocado la media móvil? No se necesita un valor máximo o mínimo, sino mostrar un toque.
El máximo (actual) High[0] está por encima de la MA, y en consecuencia el mínimo (actual) Low[0] está por debajo de la MA (según entiendo, estamos hablando de la barra 0).
otra pregunta ¿cómo añadir indicadores a mt4?
gracias
otra pregunta ¿cómo añadir indicadores a MT4?
gracias
¿No ayudan la documentación y el libro de texto?
Gracias, lo comprobaré ahora.
Por favor, ¿pueden decirme por qué el EA no está operando? Póngalo en demo (sonríe) - no funciona. Parece que han eliminado la función del principio que sólo permite operar cuando se está probando.
extern double Lots=1.0;
extern int Begin=10;
extern inttern Longitud=4;
extern int EOD=24;
extern inttern Pips=5;
extern int StopLoss=50;
extern int BreakEven=30;
extern inttern TakeProfit=80;
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()
{
//----
int i,Ticket,LastOrderTime,StartTime,EODTime,Bought=0,Sold=0;
doble EntryLong,EntryShort,SLLong,SLShort,TPLong,TPShort;
/Configuración
si (Símbolo()=="EURUSD"){
Inicio=10;
Longitud=4;
EOD=24;
Pips=5;
StopLoss=50;
BreakEven=30;
TakeProfit=80;
}
else if (Symbol()=="GBPUSD"){
Inicio=10;
Longitud=4;
EOD=24;
Pips=5;
StopLoss=70;
BreakEven=40;
TakeProfit=120;
}
si no {
Inicio=10;
Longitud=4;
EOD=24;
Pips=5;
StopLoss=50;
BreakEven=30;
TakeProfit=80;
}
//Contar el tiempo
if(Hora()>=Inicio-1)
{
StartTime= StrToTime(Begin+":00");
if(DayOfWeek()==5) EODTime = MathMin(StrToTime("22:55"),StrToTime(EOD+":00"));
si no EODTime = StartTime+(EOD-Begin)*3600-60;
}
//Configuración de pedidos
if(CurTime()>= StartTime && CurTime()<StartTime+300){
//Determinar el rango
EntryLong =High[Highest(NULL,0,MODE_HIGH,Length*60/Period(),0)]+(Pips+MarketInfo(Symbol(),MODE_SPREAD))*Point;
EntryShort =Low [Lowest (NULL,0,MODE_LOW, Length*60/Period(),0)]-Pips*Point;
SLLong =MathMax(EntryLong-StopLoss*Point,EntryShort);
SLShort =MathMin(EntryShort+StopLoss*Point,EntryLong);
TPLong =EntryLong+TakeProfit*Point;
TPShort =EntryShort-TakeProfit*Punto;
//Controlar los pedidos
for (i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUY)) Comprado++;
if(Bought>1){ //más de 1 orden de compra
if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket();
}
if(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELL)) Sold++;
if(Sold>1){ //más de 1 orden de venta
if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());
}
}
if(Bought==0){ //no hay orden de compra
if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,EntryLong,3,SLLong,TPLong,NULL,0,0,Green);
if(Ticket<0 && GetLastError()==130)
Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SLLong,TPLong,NULL,0,0,Green);
GlobalVariableSet("LastOrderTime",OrderOpenTime())
}
if(Sold==0){ //no hay orden de venta
if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,EntryShort,3,SLShort,TPShort,NULL,0,0,Green);
if(Ticket<0 && GetLastError()==130)
Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SLShort,TPShort,NULL,0,0,Green);
GlobalVariableSet("LastOrderTime",OrderOpenTime())
}
}
//Gestión de órdenes abiertas
for (i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);
//uzavšenín pozic na konci dne
if(CurTime()>=EODTime){
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket());
if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());
GlobalVariableSet("LastOrderTime",CurTime());
}
//mover a BE si el beneficio>BE
si no {
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY){
if(High[0]-OrderOpenPrice()>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
GlobalVariableSet("LastOrderTime",CurTime());
}
}
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL){
if(OrderOpenPrice()-Low[0]>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
GlobalVariableSet("LastOrderTime",CurTime());
}
}
}
}
//Restablecer las variables globales en el EOD
if(CurTime()>=EODTime) GlobalVariablesDeleteAll();
return(0);
}
//+------------------------------------------------------------------+
Buenos días a todos. He instalado MT4 FIFTY-ZNAK. El indicador iMA da 4 señales, pero ¿cómo recibir 5 señales? Por favor, ayudar a entender.
Tiene un valor de cinco dígitos. Para ver su valor, utilice
string DoubleToStr( valor doble , dígitos int )
Convierte un valor numérico en una cadena de texto que contiene una representación de caracteres de un número en un formato de precisión especificado.Parámetros:
valor - Valor en coma flotante.
dígitos - Número de dígitos después del punto decimal (0-8).
Romano ... Me alegro de verte. Lo he probado, no funciona, no entiendo que pasa, visualmente hay un historial para el periodo anterior, pero al probarlo no hay? :/
¿Cómo se indica al programa que la barra ha tocado la media móvil? No se necesita un valor máximo o mínimo, sino mostrar un toque.
¿Cómo se indica al programa que la barra ha tocado la media móvil? No se necesita un valor máximo o mínimo, sino mostrar un toque.