[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 999
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
Olá. Você poderia me dizer o que inserir no código da EA para otimizar o período EMA?
#propriedade copyright "hasgkhlhjgg"
#link da propriedade "http://www.efefrWRF.com"
#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 316995
sNameExpert = "DGJJFYGJD";
nConta exterior int =0;
duplo dBuyStopLossPoint externo = 0;
dSellStopLossPoint duplo externo = 0;
duplo dBuyTakeProfitPoint externo = 0;
dSellTakePonto de lucro externo duplo = 0;
duplo dBuyTrailingStopPoint externo = 0;
dSellTrailingStopPoint duplo externo = 0;
dLots duplo externo = 0,03;
nSlippage int exterior = 4;
bool externo lFlagUseHourTrade = Falso;
nFromHourTrade = 0;
intNToHourTrade externo = 23;
bool externo lFlagUseSound = Verdadeiro;
sSoundFileName externo de corda = "alert.wav";
cor exteriorOpenBuy = Azul;
cor exteriorCloseBuy = Aqua;
cor exteriorOpenSell = Vermelho;
cor exteriorFecharSell = Aqua;
void deinit() {
Comentário(");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
se (lFlagUseHourTrade){
se (!(Hora()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comentário ("Ainda não chegou a hora do comércio!");
retorno(0);
}
}
if(Bars < 100){
Impressão ("barras com menos de 100");
retorno(0);
}
if(nConta > 0 && nConta != AccountNumber()){
Comentário("Comércio por conta : "+ContaNúmero()+" PROIBIDO!");
retorno(0);
}
if((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) ||||
(dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){
Print("StopLoss menos de " + MIN_STOPLOSS_POINT);
retorno(0);
}
if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) ||||
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){
Print("TakeProfit menos que " + MIN_TAKEPROFIT_POINT);
retorno(0);
}
double diMA0=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA1=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA2=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA3=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA4=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA5=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA6=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA7=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA8=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA9=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA10=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA11=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA12=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA13=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA14=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA15=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA16=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA17=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA18=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA19=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA20=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA21=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA22=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA23=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA24=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA25=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA26=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA27=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA28=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA29=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA30=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA31=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA32=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA33=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA34=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA35=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA36=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA37=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA38=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA39=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA40=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA41=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA42=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA43=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA44=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA45=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA46=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA47=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA48=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA49=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA50=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA51=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA52=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA53=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA54=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA55=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA56=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA57=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
double diMA58=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA59=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
double diMA60=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
duplo diMA61=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0);
double diMA62=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
double diMA63=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
if(AccountFreeMargin() < (1000*dLots)){
Imprimir("Nós não temos dinheiro. Margem Livre = " + AccountFreeMargin()));
retorno(0);
}
bool lFlagBuyOpen = falso, lFlagSellOpen = falso, lFlagBuyClose = falso, lFlagSellClose = falso;
lFlagBuyOpen = (diMA0>diMA1 && diMA2>diMA3 && diMA4>diMA5 && diMA6>diMA7 && diMA8>diMA9 && diMA10>diMA11 && diMA12>diMA13 && diMA14>diMA15 && diMA16>diMA17 && diMA18>diMA19 && diMA20>diMA21 && diMA22>diMA23 && diMA24>diMA25 && diMA26>diMA27 && diMA28>diMA29);
lFlagSellOpen = (diMA32<diMA33 && diMA34<diMA35 && diMA36<diMA37 && diMA38<diMA39 && diMA40<diMA41 && diMA42<diMA43 && diMA44<diMA45 && diMA46<diMA47 && diMA46<diMA47; e diMA46<diMA47 && diMA48<diMA49 && diMA50<diMA51 && diMA52<diMA53 && diMA54<diMA55 && diMA56<diMA57 && diMA58<diMA59 && diMA60<diMA61);
lFlagBuyClose = (diMA30<diMA31);
lFlagSellClose = (diMA62>diMA63);
se (!ExistPosições()){
se (lFlagBuyOpen){
OpenBuy();
{ return(0);
}
se (lFlagSellOpen){
OpenSell();
retorno(0);
}
}
if(ExistPosições()){
if(OrderType()==OP_BUY){
if(lFlagBuyClose){
bool flagCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, nSlippage, colorCloseBuy);
se (flagCloseBuy && lFlagUseSound)
PlaySound(sSoundFileName);
retorno(0);
}
}
if(OrderType()==OP_SELL){
if(lFlagSellClose){
bool flagCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, nSlippage, colorCloseSell);
se (flagCloseSell && lFlagUseSound)
PlaySound(sSoundFileName);
retorno(0);
}
}
}
if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){
para (int i=0; i<OrdersTotal(); i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
se (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = falso;
se (OrderSymbol()==Symbol() && lMagic) {
if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {
if (Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {
se (OrderStopLoss()<Bid-dBuyTrailingStopPoint*Point)
ModifyStopLoss(Bid-dBuyTrailingStopPoint*Point);
}
}
se (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) {
se (OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+dSellTrailingStopPoint*Point);
}
}
}
}
}
}
retorno (0);
}
bool ExistPosições() {
para (int i=0; i<OrdersTotal(); i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
se (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = falso;
se (OrderSymbol()==Symbol() && lMagic) {
retorno(Verdadeiro);
}
}
}
retorno(falso);
}
void ModifyStopLoss(double ldStopLoss) {
bool lFlagModify = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE);
se (lFlagModify && lFlagUseSound)
PlaySound(sSoundFileName);
}
OpenBuy nulo() {
duplo dStopLoss = 0, dTakeProfit = 0;
se (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;
se (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Ponto;
int numorder = OrderSend(Symbol(), OP_BUY, dLots, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);
se (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
vazio OpenSell() {
duplo dStopLoss = 0, dTakeProfit = 0;
se (dSellStopLossPoint > 0)
dStopLoss = Ask+ dSellStopLossPoint*Point;
se (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;
int numorder = OrderSend(Symbol(),OP_SELLL, dLots, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
se (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
Eu só quero usá-lo em pares diferentes, mas ele foi projetado para EURUSD, então eu não posso ajustá-lo manualmente, nem moralmente, nem fisicamente.
Bom dia!
Você poderia me dizer como emitir dois parâmetros calculados a partir de um cálculo de função? Se eu entendi corretamente - a função return() retorna apenas um parâmetro especificado em seus parênteses.
Posso produzir apenas TLvup. E eu também quero usar o BezubMMA23up. Mas se eu escrever assim - return(TLup, BezUbMMA23up) ou return(TLup; BezUbMMA23up), eu recebo um erro. A função é chamada como duplo TL-up=CalculateTL-up(a,Price1Cin);
Como utilizar o TLup e o BezUbMMA23up ? Ou para o cálculo do parâmetro SemMMA23up eu deveria escrever separadamente o código dado novamente e retornar a saída ( SemMMA23up) ?