[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.
[Eliminado]  
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);

}

//+------------------------------------------------------------------+

[Deleted]  
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).