Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Hi.
Estou ansioso para aprender seus truques e mostrar-lhe os meus.
Olá. Estou ansioso para aprender seus truques e mostrar-lhe os meus.
Você encontrará um monte de coisas ótimas neste fórum.
Leia e use o recurso de busca sem nenhuma restrição!!!
Sinta-se à vontade para perguntar qualquer coisa ... Muitos grandes contribuidores/ajudantes aqui.
FerruFx
Neste código, ele tem o trailing stop definido para 45 pips. Mas o batente móvel parece não se ativar até que ele se mova 45 pips. Como eu precisaria trocá-lo para que o batente móvel fosse ativado quando o comércio fosse colocado?
extern string Remark1 = "== Main Settings ==";
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = true;
extern double Lots = 4;
extern int Slippage = 2;
extern bool UseStopLoss = false;
extern int StopLoss = 100;
extern bool UseTakeProfit = false;
extern int TakeProfit = 15;
extern bool UseTrailingStop = true;
extern int TrailingStop = 45;
extern bool MoveStopOnce = False;
extern int MoveStopWhenPrice = 50;
extern int MoveStopTo = 1;
extern int MaxConcurrentTrades = 2;
//Version 2.01
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderStopLoss() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(((OrderStopLoss - Ask) > (Point * TrailingStop)) || OrderStopLoss() == 0) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
Mudou em vermelho
Eu fiz as mudanças no vermelho, mas agora a EA parece não querer trabalhar. Vou postar o EA inteiro para que você possa dar uma olhada. Obrigado!
Certifique-se de colocar () após os pedidos de perda
Legal, já chega!
Que tal este indicador....
Poderia ser modificado para que os preços mostrem cores diferentes, dependendo de como eles abrem? Como se abrisse mais alto que a barra anterior, o preço seria verde, se mais baixo, então vermelho, e se mesmo assim fosse amarelo? Com estas cores podendo ser selecionadas? Além disso, você poderia estendê-la para mostrar 10 aberturas ao invés de apenas 6?
Também na EA que acabamos de fixar, como eu colocaria uma configuração de entrada como, "Pips to Activate Trailing Stop" (Pips para ativar o Trailing Stop). Tenho isso em outro EA, mas não tenho certeza de como codificá-lo.
OrderComment()
OrderTicket()
OrderLots()
OrderStopLoss()
OrderTakeProfit()
OrderOpenTime()
Todas essas são ferramentas potenciais para a filtragem de pedidos.
O que mais sobre esses ofícios específicos os torna únicos?
OrderComment()
OrderTicket()
OrderLots()
OrderStopLoss()
OrderTakeProfit()
OrderOpenTime()
Todas essas são ferramentas potenciais para a filtragem de pedidos.
O que mais sobre esses ofícios específicos os torna únicos?Duas das mais importantes para filtragem de pedidos são OrderSymbol() e OrderMagicNumber(). Outra de nota é OrderComment().
A melhor idéia é inserir uma delas no Metaeditor, depois clicar na palavra e depois pressionar F1. Ao fazer isso, exibirá a ajuda e listará todas as funções de ordem.
Feliz programação,
Hiachiever
Usando OrderComment
Tenha cuidado ao usar OrderComment() para identificar o comércio. Algumas vezes o corretor adicionará caracteres ao comentário.
É melhor usar
if (StringFind(OrderComment(), UserComment, 0) > 0)
{
// pedido identificado pelo UserComment encontrado no OrderComment
}
em vez de
se (OrderComment() == UserComment)
{
// o pedido pode ser identificado pelo UserComment
// se o OrderComment não foi alterado pelo corretor
}
Robert
Fechar negócios no bico mesmo
..............