Como codificar? - página 152

 
m_43_62:
oi

muito obrigado a todos os amigos

Você não pode usar indicador como um assessor, você tem que usar assessor com indicador, como este:

P.S. Não se esqueça de colocar o indicador no diretório de indicadores.

Arquivos anexados:
 

eliminado

--- apagado ---

 

Código para mostrar DIAS/ HORAS desde a última cruz MA

Eu preciso de um código que me mostre a última vez que dois MA's cruzaram (ou seja, há quanto tempo). Ele pode mostrá-lo em dias ou horas.

Qualquer ajuda seria bem-vinda!

Todd

 

Conversão para execução no mercado

Tenho um EA construído para a versão "Instant Execution" do Metatrader4 e preciso de alguém para mudar o código para que funcione em uma versão "Market Execution" do Metatrader4. Por favor, envie-me uma cotação ou qualquer pergunta para phasna@gmail.com.

Obrigado

Paul

 

Alguém conhece a declaração de icustom a ser usada em um EA para este indicador?

Ele tem apenas um buffer SetIndexBuffer( 0, TrStopLevel ); que é usado para os pontos de rastreamento, as setas são desenhadas por ObjectSet como você pega isso na declaração da icustom?

MT4-LevelStop-Reverse-v2-1.mq4

Arquivos anexados:
 
increase:
Alguém conhece a declaração da icustom a ser usada em um EA para este indicador?

Tem apenas um buffer SetIndexBuffer( 0, TrStopLevel ); que é usado para os pontos de trilha, as setas são desenhadas pela ObjectSet como você pega isso na declaração do icustom?

MT4-LevelStop-Reverse-v2-1.mq4

Há alguém por aí para ajudar?

 

Ajude-me a colocar as trocas entre os spreads!

Ok, os spreads matam alguns pares. mas é o fio da frente para colocar os negócios no meio de um spread. Desta forma podemos economizar pips e ganhar mais dinheiro. eu tenho este código e ele pode ser alterado para modificar a ordem para que o preço do gráfico não seja pedido?

Válido PlaceBuyOrder()

{

encomendas duplas, lotes;

duplo LowestBuy = 1000, HighestBuy;

se (BarTime != Tempo[0])

{

BarTime = Tempo[0];

TickPrice = 0;

TradeAllowed = verdadeiro;

}

RefreshRates();

para (Ordem = OrderTotal() - 1; Order >= 0; Order--)

{

se (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))

{

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

{

se (OrderOpenPrice() < LowestBuy) LowestBuy = OrderOpenPrice();

se (OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();

BuyOrders++;

}

}

}

se (TradeAllowed)

{

se (Pergunte >= HighestBuy + (TrendSpacing * Ponto))

{

// se (Multiplicador)

se (Multiplicador == 1)

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

mais

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

}

se (Pergunte <= LowestBuy - (Espaçamento * Ponto))

{

// se (Multiplicador)

se (Multiplicador == 1)

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

mais

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

}

se (Lotes == 0)

{

// se (Multiplicador)

se (Multiplicador == 1)

Lots = NormalizeDouble(LotSize, 2);

mais

Lots = NormalizeDouble(LotSize, 2);

}

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

Erro = GetLastError();

se (Erro != 0)

Escreva("Erro na abertura do pedido de compra": "Descrição do erro(Erro) + " (C" + Erro + ") Perguntar:" + Perguntar + " Slippage:" + Slippage);

senão

{

TickPrice = Fechar[0];

TradeAllowed = falso;

}

}

}

Lugar vazio PlaceSellOrder()

{

encomendas duplas de venda, muitas;

dobro HighestSell, LowestSell = 1000;

se (BarTime != Tempo[0])

{

BarTime = Tempo[0];

TickPrice = 0;

TradeAllowed = verdadeiro;

}

RefreshRates();

para (Ordem = OrderTotal() - 1; Order >= 0; Order--)

{

se (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))

{

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

{

se (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();

se (OrderOpenPrice() < LowestSell) LowestSell = OrderOpenPrice();

EncomendasOrdens++;

}

}

}

se (TradeAllowed)

{

if (Licitação <= LowestSell - (TrendSpacing * Point))

{

// se (Multiplicador)

se (Multiplicador == 1)

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

mais

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

}

se (Licitações >= Venda mais alta + (Espaçamento * Ponto))

{

// se (Multiplicador)

se (Multiplicador == 1)

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

mais

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

}

se (Lotes == 0)

{

// se (Multiplicador)

se (Multiplicador == 1)

Lots = NormalizeDouble(LotSize, 2);

mais

Lots = NormalizeDouble(LotSize, 2);

}

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

Erro = GetLastError();

se (Erro != 0)

Escrever("Erro na abertura do pedido de VENDA": "Descrição do erro (Erro) + " (D" + Erro + ") Proposta:" + Proposta + " Slippage:" + Slippage);

senão

{

TickPrice = Fechar[0];

TradeAllowed = falso;

}

}

}

Isto é algo que pode ser feito?

 

AJUDA ~ apenas 1 erro, use 3 Horas ainda não conseguiu descobrir

EU SOU MUITO TRABALHO , BECAUSE Não consigo descobrir como corrigir o erro abaixo

Alguém pode me dizer onde está o erro? ou me ajudar a depurar, anexei os arquivos, veja buttom~ ~ ~

Fim_do_programa' - parêntese_esquerda desequilibradaC:Arquivos de programa MetaTrader=Especialistas_delete_pending_SAM.mq4 (38, 2)

É UM ARQUIVO DE ROTEIRO~ ~ ~

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

//| delete_pending.mq4 |

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

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

#Copyright ?2004, MetaQuotes Software Corp."

#link do proprietário "http://www.metaquotes.net/"

#property show_inputs

resultado da bool;

duplo OverSymbolDel = 1; //0:FASLE ; 1: VERDADEIRO

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

//| script "apagar ordem pendente" |

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

int start()

{

para (número int=0; (número <= EncomendasTotal()+1); número++ )

{for (int vezes=0;( vezes <= OrdensTotal()+1); vezes++ )

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

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

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

if (SobreSymbolDel ===1) delPending();

}

else Print("Error when Order Select ", GetLastError() ) ;

}

}

}

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

delPendente nulo()

{OrderPrint();

int ticket =OrderTicket();

resultado=OrderDelete(ticket);

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

}

Arquivos anexados:
 

Para chiwing

Tente isto:

#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 chiwing

Tente isto:

#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() );

}

obrigado por sua ajuda~ ~ ~

e eu acho meu erro:

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

mudar para

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

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

mudar para

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

Razão: