[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 356
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
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.