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
Gerenciar múltiplos negócios
Olá a todos,
Estou tentando desenvolver uma EA que possa teoricamente entrar em uma quantidade infinita de negócios, e administrar para cada negócio o:
Eu sei que EAs como o exército suíço e a administraçãoTP podem fazer isso. Eu não sei como.
Alguma sugestão?
precisam de ajuda para escrever o código de interrupção do comércio após uma perda
Hi,
Preciso escrever o código para que um especialista pare de negociar por um número específico de horas após uma perda ou após duas ou três perdas consecutivas.
algum órgão pode me ajudar?
Codificação para Martinggle com cobertura fechada
Olá Equipe,
gostaria de buscar um código que possa me fornecer a solução de minhas estratégias de estado abaixo;
exemplos;
conceito de martingle...
TP = 23 pips
Vazios na tubulação = 20
OP compra UE 0.1,0.2,0.4,0.4,0.8,1.6 lote
1. se camada no lote 1,6 flutuando mais de -20pips então OP Sell EU com 12,8lot (tp 23).
2. se a camada do lote 12,8 atingir TP feche toda a posição EU.
3. se 12,8 lote pip=0 então feche a posição em Sell EU somente.
4. repetir a situação 1 até 3 novamente se a condição se aplicar.
Preciso de seu favor para me aconselhar sobre a função e os códigos.
questão codificadora
Neste momento este código funciona verificando se a abertura atual é mais alta do que a barra anterior. Minha pergunta é como eu a mudaria se eu quisesse ver se ela era mais alta OU IGUAL PARA a barra anterior?
if(Abrir[0] > Abrir[0+1] &&
Abrir[0+1] > Abrir[0+2] &&
Aberto[0+2]> Aberto[0+3] &&
Aberto[0+3] > Aberto[0+4] &&
Abrir[0+4] > Abrir[0+5] &&
Aberto[0+5] > Aberto[0+6]) Ordem = SIGNAL_SELL
Eu simplesmente adicionaria um = ao lado do sinal maior do que este = >?
Obrigado!
tente isto:
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
sinais inversos de conselheiros especializados
oi
apenas brincando com este conselheiro especializado
#property link "http://FORTRADER.RU"
/*
????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008,
??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
A detailed description of the parameters adviser available issue of the journal dated May 26 2008,
suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
*/
extern string x="????????? MACD:";
extern int FastEMA = 12;
extern int SlowEMA = 24;
int SignalEMA = 9;
extern int predel = 6;
extern string x1="????????? MA:";
extern int SMA1 = 50;
extern int SMA2 = 100;
extern int otstup = 10;
extern string x2="???????? ????? ??? ??????? ????-???? :";
extern int stoplossbars = 6;
extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:";
extern int pprofitum = 2;
extern string x4="?????? ?? ADX:";
extern int enable = 0;
extern int periodADX = 14;
extern double Lots=1;
datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell;
int start()
{
buy=0;sell=0;
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY){buy=1;}
if(OrderType()==OP_SELL){sell=1;}
}
//????????? ??????????
double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);
double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1);
double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1);
if(Close[1]<sma2){okbuy=1;}
if(Close[1]>sma2){oksell=1;}
if(enable==1)
{
adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);
}else{adx=60;}
if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0)
{
buy=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd<0){buy=2;}
}
if(buy==2 && adx>50 && okbuy==1)
{okbuy=0;
double stoploss=Low;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green);
a=0;
}
}
if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0)
{
sell=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd>0){sell=2;}
}
if(sell==2 && adx>50 && oksell==1)
{oksell=0;
stoploss=High;
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White);
b=0;
}
}
if(buy==2 || buy==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY )
{
double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum);
if(Close[1]>setup2 && a==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet);
a=1;
}
if(a==1 && sma1> Close[1]-otstup*Point)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}
}
}
}
if(sell==2 || sell==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL )
{
setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum);
if(Close[1]<setup2 && b==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet);
b=1;
}
if(b==1 && Close[1]-otstup*Point> sma1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
}
}
}
return(0);
}como eu reverto as ordens de compra e venda... não consigo colocá-lo funcionando
Para apenas mudar inversamente OP_BUY com OP_SELL e a ação inversa na linha de código correta.
tente isto:
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
Isso não funcionou, mas colocar o sinal = após o sinal > funcionou. Assim:
if(Open[0] >= Open[0+1] &&
Aberto[0+1] >= Aberto[0+2] &&
Aberto[0+2]>= Aberto[0+3] &&
Aberto[0+3] >= Aberto[0+4] &&
Aberto[0+4] >= Aberto[0+5] &&
Aberto[0+5] >= Aberto[0+6]) Ordem = SIGNAL_SELL
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 - OrderOpenPrice() > 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((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
sinais inversos de conselheiros especializados
pode alguém me ajudar no skype a mudar algum código em 1 Expert Advisor
posso encontrar uma muito boa . apenas uma pequena coisa tem que ser mudada
meu skype é : ctzulu
muito obrigado