[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

 

otra pregunta ¿cómo añadir indicadores a mt4?


gracias

 
Garifyanov:

otra pregunta ¿cómo añadir indicadores a MT4?


gracias

¿No ayudan la documentación y el tutorial?
 
artmedia70:
¿No ayudan la documentación y el libro de texto?


Gracias, lo comprobaré ahora.
 
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.

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 FIFTYZNAK. El indicador iMA da 4 dígitos, pero ¿cómo obtener 5 dígitos? Por favor, ayúdenme a entender.
 
MK07:
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).


Ejemplo:
  string value=DoubleToStr(1.28473418, 5);
  // содержимое строки value - "1.28473"
 
laveosa:

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.

 
Forexman77:

¿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).