¿Cómo codificar? - página 152

 
m_43_62:
hola

muchas gracias a todos los amigos

No puedes usar el indicador como un asesor, tienes que usar el asesor con el indicador, así:

P.D. No olvides poner el indicador en el directorio de indicadores.

Archivos adjuntos:
 

borrado

--- borrado ---

 

Código para mostrar DÍAS/HORAS desde el último cruce de MA

Necesito un código que me muestre la última vez que dos MA's se cruzaron (es decir, hace cuánto tiempo). Puede mostrarlo en días u horas.

Cualquier ayuda será apreciada.

Todd

 

Conversión a Market Execution

Tengo un EA construido para la versión "Instant Execution" de Metatrader4 y necesito que alguien cambie el código para que funcione en una versión "Market Execution" de Metatrader4. Por favor, envíenme un presupuesto o cualquier pregunta a phasna@gmail.com

Gracias

Paul

 

¿Alguien sabe la declaración icustom a utilizar en un EA para este indicador?

Sólo tiene un búfer SetIndexBuffer( 0, TrStopLevel ); que se utiliza para los puntos de arrastre, las flechas se dibujan por ObjectSet ¿cómo recoger que en la declaración icustom?

MT4-LevelStop-Reverse-v2-1.mq4

Archivos adjuntos:
 
increase:
¿Alguien sabe la declaración icustom a utilizar en un EA para este indicador?

Sólo tiene un buffer SetIndexBuffer( 0, TrStopLevel ); que se utiliza para los puntos finales, las flechas son dibujadas por ObjectSet ¿cómo se recoge eso en la declaración icustom?

MT4-LevelStop-Reverse-v2-1.mq4

¿Hay alguien por ahí para ayudar?

 

¡Ayúdame a colocar operaciones en medio de los spreads!

Ok, los spreads matan algunos pares. pero es theire lejos de colocar operaciones en el medio de un spreads. De esta manera podemos ahorrar pips y ganar más dinero. tengo este código y se puede cambiar para modificar la orden al precio del gráfico no a la oferta?

void PlaceBuyOrder()

{

doble BuyOrders, Lots;

double CompraMínima = 1000, CompraMáxima;

if (BarTime != Time[0])

{

BarTime = Time[0];

TickPrice = 0;

TradeAllowed = true;

}

RefreshRates();

for (Order = OrdersTotal() - 1; Order >= 0; Order--)

{

if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_BUY)

{

if (OrderOpenPrice() < LowestBuy) LowestBuy = OrderOpenPrice();

if (OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();

BuyOrders++;

}

}

}

if (TradeAllowed)

{

if (Ask >= HighestBuy + (TrendSpacing * Point))

{

// si (Multiplicador)

si (Multiplicador == 1)

Lotes = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2);

si no

Lotes = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2);

}

if (Ask <= LowestBuy - (Spacing * Point))

{

// si (Multiplicador)

si (Multiplicador == 1)

Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2);

si no

Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2);

}

if (Lots == 0)

{

// si (Multiplicador)

si (Multiplicador == 1)

Lotes = NormalizeDouble(LotSize, 2);

si no

Lotes = NormalizeDouble(LotSize, 2);

}

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, TradeComment, Reference, Green);

Error = GetLastError();

if (Error != 0)

Write("Error al abrir una orden de COMPRA: " + ErrorDescription(Error) + " (C" + Error + ") Ask:" + Ask + " Slippage:" + Slippage);

si no

{

TickPrice = Close[0];

TradeAllowed = false;

}

}

}

void PlaceSellOrder()

{

double OrdenDeVenta, Lotes;

double MayorVenta, MenorVenta = 1000;

if (BarTime != Time[0])

{

BarTime = Time[0];

TickPrice = 0;

TradeAllowed = true;

}

RefreshRates();

for (Order = OrdersTotal() - 1; Order >= 0; Order--)

{

if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_SELL)

{

if (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();

si (OrderOpenPrice() < LowestSell) LowestSell = OrderOpenPrice();

SellOrders++;

}

}

}

if (TradeAllowed)

{

if (Bid <= LowestSell - (TrendSpacing * Point))

{

// si (Multiplicador)

si (Multiplicador == 1)

Lotes = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2);

si no

Lotes = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2);

}

if (Bid >= HighestSell + (Spacing * Point))

{

// si (Multiplicador)

si (Multiplicador == 1)

Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2);

si no

Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2);

}

if (Lots == 0)

{

// si (Multiplicador)

si (Multiplicador == 1)

Lotes = NormalizeDouble(LotSize, 2);

si no

Lotes = NormalizeDouble(LotSize, 2);

}

OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, TradeComment, Reference, Red);

Error = GetLastError();

if (Error != 0)

Write("Error al abrir una orden de VENTA: " + ErrorDescription(Error) + " (D" + Error + ") Bid:" + Bid + " Slippage:" + Slippage);

si no

{

TickPrice = Close[0];

TradeAllowed = false;

}

}

}

¿Se puede hacer esto?

 

AYUDA~ solo 1 error, uso 3 Horas aun no lo encuentro

ESTOY MUY PREOCUPADO , PORQUE NO PUEDO ENCONTRAR como corregir el error de abajo

¿alguien puede decirme dónde está el error? o ayudarme a depurar, he adjuntado los archivos, ver buttom~ ~

'\ fin_de_programa' - paréntesis izquierdo desequilibrado C:\ Archivos de programa\ MetaTrader\experts\scripts\delete_pending_SAM.mq4 (38, 2)

ES UN ARCHIVO DE SCRIPT~ ~

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

//| delete_pending.mq4 |||

//| Copyright ?2004, MetaQuotes Software Corp. |

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

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

resultado bool;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "borrar orden pendiente" |

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

int inicio()

{

for (int number=0; (number <= OrdersTotal()+1); number++ )

{for (int times=0;( times <= OrdersTotal()+1); times++ )

{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )

{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;

if ((OverSymbolDel ==0)&& (Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

else Print("Error al seleccionar el pedido ", GetLastError() ) ;

}

}

}

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

void delPending()

{OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (result==False) Print("Error al eliminar el pedido ", GetLastError() );

}

Archivos adjuntos:
 

Para chiwing

Prueba esto:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "delete pending order" |

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

int start()

{

for (int number=OrdersTotal()-1; number >= 0; number--)

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

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

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}
 
Roger09:
Para chipear

Prueba esto:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "delete pending order" |

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

int start()

{

for (int number=OrdersTotal()-1; number >= 0; number--)

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

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

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}

gracias por su ayuda~ ~

y encuentro mi error :

{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )

cambiar a

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;

cambiar a

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) countinue;