¿Cómo codificar? - página 47

 

Gracias MrPip

Entiendo en gran parte por donde vas, le daré hace y volveré a preguntar si me atasco.

saludos

 
MrPip:
Correcciones en rojo abajo. Robert

Gracias Robert .. que ayudó ..

 

Cuenta atrás de barras con indicadores MTF

MTF = indicadores de marco de tiempo múltiple

doble BarCountDownInSec()

{

doble g;

g=Tiempo[0]+Periodo()*60-TiempoActual();

return(g);

}

La función anterior da la segunda cuenta atrás para las barras en el gráfico actual. Así que si se coloca en un gráfico de 5 minutos, mostrará la segunda cuenta regresiva para cada barra de 5 minutos.

P: ¿Cómo obtengo la cuenta regresiva de segundos para una barra de 15 minutos (es decir, 3 barras de 5 minutos), cuando estoy en un gráfico de 5 minutos, por lo que una cuenta regresiva de 15 minutos de 6.00 a 6.15. luego 6.15 a 6.30, mientras estoy en un gráfico de 5 minutos?

 

Problema con mi programación (BUG)

Hola,

Alguien puede ayudarme a aclarar el bug. Ya casi lo tengo, solo que el histograma no aparece a menos que vuelva a compilar el código.

¡¡¡Por favor, ayuda!!! Por favor, por favor, por favor

Saludos

Archivos adjuntos:
 

Problema de icustom

¿Cuál es el nombre de la cadena de este indi que debo utilizar para una parte iCustom de un EA

He probado con

MT4-LevelStop-Reverse-vBO-4

MT4-LevelStop-Reverse-

MT4-LevelStop-Reverse

vBO-4

vB0.4

vtsbh2483-

MT4-LevelStop-Reverse-" + INDICATOR_VERSION + "(

Así que no tengo ni idea de qué hacer a continuación.

o tengo que poner en el ATRMode,Manual Mode etc String Names

Cualquier ayuda sería genial

Archivos adjuntos:
 

¿Alguien puede ver el error? No puedo ver dónde está el error en este código. Sigo recibiendo. Cualquier ayuda para señalarlo sería genial. Gracias

LongSig Variable no definida

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

//| Calcula las posiciones abiertas |||.

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

int CalcularPropiedadesActuales() {

buys=0; sells=0;

string symbol=Símbolo();

//----

for(int i=0;i<TotalPedidos();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continuar;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==expertId)

{

if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) buys++;

if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) vende++;

}

}

//---- devuelve el volumen de las órdenes

if(buys>0) return(buys);

si no, return(-sells);

}

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

//| Comprueba las condiciones de las órdenes abiertas ||.

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

void CheckForSignals() {

buysig=false;

sellsig=false;

closebuy=false;

closesell=false;

double MOM = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift);

double SRL = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod, ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233);

double SRS = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod, ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234);

double QQE_RsiMa = iCustom(NULL,0, "QQE",0,shift);

double QQE_TrLevelSlow = iCustom(NULL,0, "QQE", 1, shift);

double QQE_RsiMaPrev = iCustom(NULL,0, "QQE",0,shift + 1);

double QQE_TrLevelSlowPrev = iCustom(NULL,0, "QQE", 1, shift + 1);

double Pivot = iCustom (NULL,0, "Pivot Points Multitimeframe",midpivots,Fhr,daily,weekly,monthly,1,shift)

bool LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0;

bool ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0;

bool LongSig2 = MOM>0.0;

bool ShortSig2 = MOM<0.0;

bool SigLarga3 = SRL>Pivot;

bool SigCorta3 = SRS<Pivot;

buysig = LongSig && LongSig2 && LongSig3;

sellsig = ShortSig && ShortSig2 && ShortSig3;

closebuy=sellsig;

closesell=buysig;

}

void CheckForOpen() {

if (last==Time[0]) return;

int res,ord;

doble entrada,stop,beneficio;

ord=CalcularOrdenesactuales();

if (ord!=0) CheckForClose();

ord=CalcularOrdenesActualess();

//---- condiciones de compra

if (buys<ConsecutiveTrades && buysig) {

res=OpenAtMarket(OP_BUY,Lots);

if (res<0) Print("Error al abrir una orden de COMPRA : ",ErrorDescription(GetLastError()));

si no res=Tiempo[0];

}

//---- condiciones de venta

if (-sells<ConsecutiveTrades && sellsig) {

res=OpenAtMarket(OP_SELL,Lots);

if (res<=0) Print("Error al abrir la orden SELL: ",ErrorDescription(GetLastError()));

si no, last=Time[0];

}

}

int OpenAtMarket(int modo,double lote) {

int res,tr,col;

double openprice,sl,tp;

tries=0;

while (res<=0 && tries<OrderTriesNumber) {

tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(2000); }

RefreshRates();

if (mode==OP_SELL) {

openprice=Bid;

col=Rojo;

} else {

//openprice=nd(Ask);

openprice=Ask;

col=Azul;

}

res=OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+expertId,expertId,0,col);

intenta++;

}

return(res);

}

TI fijo

 

Pruebe el primero de su lista con un número 0 en lugar de una letra O para vB0-4.

Robert

Beno:
Cuál es el nombre de cadena de este indi que debo usar para una parte iCustom de un EA

He probado

MT4-LevelStop-Reverse-vBO-4

MT4-LevelStop-Reverse-

MT4-LevelStop-Reverse

vBO-4

vB0.4

vtsbh2483-

MT4-LevelStop-Reverse-" + INDICATOR_VERSION + "(

Así que no tengo ni idea de qué hacer a continuación.

o necesito poner los nombres de las cadenas ATRMode, Manual Mode, etc.

Cualquier ayuda sería genial
 

Gracias Sr. Pips

Lo he solucionado

 
MrPip:
Correcciones en rojo a continuación. Robert

He intentado esto pero parece que no funciona... sólo quiero un comercio por día...

for(int a=0;a<OrdersTotal();a++)

{

if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true)

{

if (OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)

{

if (TimeDay(OrderOpenTime()) >= TimeDay(TimeCurrent()) Trade = false;

si (TimeDay(OrderOpenTime()) < TimeDay(TimeCurrent()) Trade = true;

}

}

}
 
antone:
He intentado esto pero parece que no funciona... solo quiero una operación por día...

He utilizado esto en otros EAs y funciona correctamente.

Compruebo el comercio cerrado hoy en lugar del abierto hoy.

El uso en el inicio es

if (LastTradeClosedToday()) return(0);

// código aquí para abrir nuevas operaciones

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

//| LastTradeClosedToday |||

//| Comprueba el historial para ver si la última operación se cerró hoy ||.

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

bool ÚltimaCesiónCerradaHoy()

{

int cnt, total;

bool Cerrado;

total = HistoryTotal();

for (cnt = total - 1; cnt >= 0; cnt--)

{

OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY);

if(OrderSymbol()!=Symbol()) continuar;

if(OrderMagicNumber() != MagicNumber) continue;

Cerrado = false;

if (OrderType() = OP_BUY)

{

if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent())

{

Cerrado = true;

}

cnt = 0;

}

if (OrderType() = OP_SELL)

{

if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent())

{

Cerrado = true;

}

cnt = 0;

}

}

return (Cerrado);

}