Olá
Eu tenho um problema com este código particular
Alguém poderia olhar para isso.
// ----------------------------------------------- -------------------
//| Este MQL é gerado pelo Expert Advisor Builder |
//|
http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/|
//| |
//| Se o autor for responsável por quaisquer danos, seja qual for. |
//| Use por sua conta e risco. |
//| |
// ------------------- NÃO REMOVA ESTE CABEÇALHO --------------------
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL Dois
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright Expert Advisor Builder
#property Hyperlink http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
extern int MagicNumber = 0;
bool externo SignalMail = False;
bool externo EachTickMode = Falso;
Lotes duplos externos = 1,0;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 300;
extern bool UseTakeProfit = True;
extern int TakeProfit = 600;
extern bool UseTrailingStop = True;
extern int TrailingStop = 300;
int BarCount;
int Atual;
bool TickCheck = Falso;
// ----------------------------------------------- -------------------
//| função de inicialização pro |
// ----------------------------------------------- -------------------
int init ()
BarCount = Barras;
if (EachTickMode) Atual = 0; caso contrário, Current = 1;
retorno (0);
// ----------------------------------------------- -------------------
//| função de desinicialização pro |
// ----------------------------------------------- -------------------
int deinit ()
retorno (0);
// ----------------------------------------------- -------------------
//| função de início de especialista |
// ----------------------------------------------- -------------------
int begin () {
int Order = SIGNAL_NONE;
int Completo, Ticket;
dual StopLossLevel, TakeProfitLevel;
if (EachTickMode Barras! = BarCount) TickCheck = False;
Complete = OrdersTotal ();
Order = SIGNAL_NONE;
// ----------------------------------------------- -------------------
//| Variável Begin |
// ----------------------------------------------- -------------------
Var1 dual = iIchimoku (NULL, 0, 9, 26, 52, MODE_CHIKOUSPAN, Current 0);
Var2 dual = iIchimoku (NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current 0);
dual Var3 = iIchimoku (NULL, 0, 9, 26, 52, MODE_KIJUNSEN, Corrente 0);
dual Buy1_1 = Var1;
dual Buy1_2 = iClose (NULL, 0, Corrente 21);
dual Buy2_1 = Var2;
dual Buy2_2 = Var3;
dual Sell1_1 = Var1;
dual Sell1_2 = iClose (NULL, 0, Corrente 21);
dual Sell2_1 = Var3;
dual Sell2_2 = Var2;
// ----------------------------------------------- -------------------
//| Fim do Fator |
// ----------------------------------------------- -------------------
//Check position
bool IsTrade = Falso;
para (int I = 0; I lt; Total; I )
OrderSelect (eu, SELECT_BY_POS, MODE_TRADES);
if (OrderType () lt; = OP_SELL OrderSymbol () == Símbolo ())
IsTrade = True;
if (OrderType () == OP_BUY) Fim do Sinal (Saída de Compra) else
//Fechar
// ----------------------------------------------- -------------------
//
// ----------------------------------------------- -------------------
//| Início do Sinal (Entrada) |
// ----------------------------------------------- -------------------
if (Buy1_1 gt; Buy1_2 Buy2_1 == Buy2_2) Pedido = SIGNAL_BUY;
if (Sell1_1 lt; Vender1_2 Vender2_1 gt; Vender2_2) Pedido = SIGNAL_SELL;
// ----------------------------------------------- -------------------
//| Fim do Sinal |
// ----------------------------------------------- -------------------
//Comprar
if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Barras! = BarCount))))
if (! IsTrade)
//Marque a margem livre
if (AccountFreeMargin () lt; (1000 * lotes))
Imprimir (Não temos dinheiro. Margem Livre =, AccountFreeMargin ());
retorno (0);
if (UseStopLoss) StopLossLevel = Estágio Ask - StopLoss *; caso contrário, StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Perguntar TakeProfit * Ponto; Caso contrário, TakeProfitLevel = 0.0;
Ticket = OrderSend (Symbol (), OP_BUY, Lotes, Perguntar, Slippage, StopLossLevel, TakeProfitLevel, Comprar (# MagicNumber ), MagicNumber, 0, DodgerBlue);
if (ticket gt; 0)
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES))
Imprimir (ordem de compra aberta:, OrderOpenPrice ());
if (SignalMail) SendMail ([Alerta de Sinal], [ Símbolo () ] DoubleToStr (Perguntar, Dígitos) Abrir Compra);
outro
Imprimir (erro ao abrir a ordem de compra:, GetLastError ());
if (EachTickMode) TickCheck = Verdadeiro;
if (! EachTickMode) BarCount = Barras;
retorno (0);
//Vender
if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Barras! = BarCount)))) {
if (! IsTrade) {
//Marque a margem livre
if (AccountFreeMargin () lt; (1000 * lotes))
Imprimir (Não temos dinheiro. Margem Livre =, AccountFreeMargin ());
retorno (0);
if (UseStopLoss) StopLossLevel = Lance StopLoss * Estágio; caso contrário, StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Lance - TakeProfit * Ponto; Else TakeProfitLevel = 0.0;
Ticket = OrderSend (Symbol (), OP_SELL, Lotes, Bid, Slippage, StopLossLevel, TakeProfitLevel, Venda (# MagicNumber ), MagicNumber, 0, DeepPink);
if (ticket gt; 0)
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES))
Impressão (ordem SELL iniciada:, OrderOpenPrice ());
if (SignalMail) SendMail ([Alerta de Sinal], [ Símbolo () ] DoubleToStr (Bid, Dígitos) Venda Aberta);
outro
Impressão (Erro ao abrir a ordem SELL:, GetLastError ());
if (EachTickMode) TickCheck = Verdadeiro;
if (! EachTickMode) BarCount = Barras;
retorno (0);
}
}
if (! EachTickMode) BarCount = Barras;
retorno (0);
}
// ----------------------------------------------- -------------------