작업 종료됨
실행 시간 16 일
명시
Então eu pensei num bot tipo esse aqui de baixo, Quero algum Desenvolvedor de EA que possa concertar isso.
e também quero que insira esses Lots específicos aqui em baixo em cada ordem q for aberta com perda, quando a ganha a ordem volta para o lot inicial
Adiciona eu no whatsapp +55 11 95724-2910
extern int MagicNumber=10001;
extern double Lots =0.1;
extern double StopLoss=50;
extern double TakeProfit=50;
extern int TrailingStop=50;
extern int Slippage=3;
extern double minlot=0.1;
extern double maxlot=10;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
double numero[]={0.1,0.2,0.3};
int n,result;
double lotsfactor=1.5,ilots;
double initiallotsfactor=1;
int start()
{
//|---------martingale initialization
int tempfactor,total=OrdersTotal();
if(tempfactor==0 && total>0)
{
for(int cnt=0;cnt<total;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
tempfactor=NormalizeDouble(OrderLots()/numero[n],1+(MarketInfo(Symbol(),MODE_MINLOT)==0.01));
break;
}
}
}
}
int histotal=OrdersHistoryTotal();
if(tempfactor==0&&histotal>0)
{
for(cnt=0;cnt<histotal;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
tempfactor=NormalizeDouble(OrderLots()/numero[n],1+(MarketInfo(Symbol(),MODE_MINLOT)==0.01));
break;
}
}
}
}
if(tempfactor>1)
lotsfactor=tempfactor;
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((Bid>Open[0])) // Here is your open buy rule
{
for(n=0;n<numero[n];n++){
result=numero[n]+OrderLots();
numero[n]=NormalizeDouble(numero[n]=martingalefactor(),1);
if(numero[n]<minlot)numero[n]=minlot;if(numero[n]>maxlot)numero[n]=maxlot;
result=OrderSend(Symbol(),OP_BUY,numero[n],Ask,Slippage,0,0,"Bot",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
if((Bid<Open[0])) // Here is your open Sell rule
{
for(n=0;n<numero[n];n++){
result=numero[n]+OrderLots();
numero[n]=NormalizeDouble(numero[n]=martingalefactor(),1);
if(numero[n]<minlot)numero[n]=minlot;if(numero[n]>maxlot)numero[n]=maxlot;
result=OrderSend(Symbol(),OP_SELL,numero[n],Bid,Slippage,0,0,"Bot",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
}
for(int vnt=0;vnt<OrdersTotal();vnt++)
{
OrderSelect(vnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
int martingalefactor()
{
int histotal=OrdersHistoryTotal();
if (histotal>0)
{
for(int cnt=histotal-1;cnt>=0;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)
{
lotsfactor=numero[n]+OrderLots();
return(lotsfactor);
}
else
{
lotsfactor=numero[n];
if(lotsfactor>=0)
{
lotsfactor=1.5;
}
return(lotsfactor);
}
}
}
}
}
return(lotsfactor);
}
extern double Lots =0.1;
extern double StopLoss=50;
extern double TakeProfit=50;
extern int TrailingStop=50;
extern int Slippage=3;
extern double minlot=0.1;
extern double maxlot=10;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
double numero[]={0.1,0.2,0.3};
int n,result;
double lotsfactor=1.5,ilots;
double initiallotsfactor=1;
int start()
{
//|---------martingale initialization
int tempfactor,total=OrdersTotal();
if(tempfactor==0 && total>0)
{
for(int cnt=0;cnt<total;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
tempfactor=NormalizeDouble(OrderLots()/numero[n],1+(MarketInfo(Symbol(),MODE_MINLOT)==0.01));
break;
}
}
}
}
int histotal=OrdersHistoryTotal();
if(tempfactor==0&&histotal>0)
{
for(cnt=0;cnt<histotal;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
tempfactor=NormalizeDouble(OrderLots()/numero[n],1+(MarketInfo(Symbol(),MODE_MINLOT)==0.01));
break;
}
}
}
}
if(tempfactor>1)
lotsfactor=tempfactor;
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((Bid>Open[0])) // Here is your open buy rule
{
for(n=0;n<numero[n];n++){
result=numero[n]+OrderLots();
numero[n]=NormalizeDouble(numero[n]=martingalefactor(),1);
if(numero[n]<minlot)numero[n]=minlot;if(numero[n]>maxlot)numero[n]=maxlot;
result=OrderSend(Symbol(),OP_BUY,numero[n],Ask,Slippage,0,0,"Bot",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
if((Bid<Open[0])) // Here is your open Sell rule
{
for(n=0;n<numero[n];n++){
result=numero[n]+OrderLots();
numero[n]=NormalizeDouble(numero[n]=martingalefactor(),1);
if(numero[n]<minlot)numero[n]=minlot;if(numero[n]>maxlot)numero[n]=maxlot;
result=OrderSend(Symbol(),OP_SELL,numero[n],Bid,Slippage,0,0,"Bot",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
}
for(int vnt=0;vnt<OrdersTotal();vnt++)
{
OrderSelect(vnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
int martingalefactor()
{
int histotal=OrdersHistoryTotal();
if (histotal>0)
{
for(int cnt=histotal-1;cnt>=0;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)
{
lotsfactor=numero[n]+OrderLots();
return(lotsfactor);
}
else
{
lotsfactor=numero[n];
if(lotsfactor>=0)
{
lotsfactor=1.5;
}
return(lotsfactor);
}
}
}
}
}
return(lotsfactor);
}
응답함
1
등급
프로젝트
139
24%
중재
34
32%
/
44%
기한 초과
59
42%
작업중
비슷한 주문
I need a Scalping EA
30+ USD
Hi, I've been developing a Scalping strategy that now I want to apply to a bot in order to save me some time. Requirements: - Trade Timeframe: M1 - Indicators: EMA (Exponential Moving Average), SMA (Simple Moving Average) Based on indicators above, bot will buy assets applying Stop Loss and Take Profit values. Let me know if you are interested... Thanks
EA Baseado na teoria dos ciclos
30 - 100 USD
Robô para negociação automática: Variáveis de negociação: Lote, hora de negociação, horário de zeragem de ordens. trail stop sim ou nao: cada canal rompido a favor da operação, sobe x canal Stop do dia: em pontos Take do dia: em pontos Quantidade de operações no dia: x Quantidade de ganhos no dia: x Quantidade de perdas no dia: x Variáveis dos indicadores: Media móvel, período e tipo de calculo e quantidade de pontos
Correção de 2 erros em meu EA
30+ USD
Gostaria de corrigir 2 erros em meu EA, ele é complexo e tem mais de 6k linhas. Quero saber sua experiência antes de firmarmos qualquer acordo. Conversaremos mais a respeito e tenho que colocar palavras aqui para dar 30 palavras e eu poder postar
프로젝트 정보
예산
20 - 30 USD
개발자에게
18
- 27
USD
기한
에서 1 로 10 일