Como codificar? - página 43

 
jimven:
Flytox:Não consigo encontrar tal código em minha cópia do TrendStrength.

É a TrendStrength v2.2

 

Modo de preço personalizado

Alguém sabe como fazer um preço personalizado? Estou usando o seguinte alerta para sinalizar quando o preço (modo de preço interno externo = 6; //(alto+baixo+fechado+fechado)/4) cruza um MA. Eu gostaria de fazer este costume adicionando um offset, digamos 1 ou 2%. Isto é possível? Algo como:

Modo PriceMode int externo = ((alto+baixo+fechado+fechado)/4) * 1.01

----------------------------------------------------

#janela_do_cartão_indicador de propriedade

externo int MA1.período =5; //Período 5

externo int MA1.shift=0;

externo int MA1.method=2; //SMMA

externo int lMA1.price=2; //MA set to candle high

sMA1.price=3; //MA set to candle low

modo PriceMode int externo = 6; //(alto+baixo+fechar+fechar)/4

int cBar,pBarLong,pBarShort;

int start()

{

cBar = Tempo[0];

if(CheckMACross(1)== 1 && cBar!=pBarLong ) {EmailAlert(1); pBarLong=cBar;}

mais

if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2); pBarShort=cBar;}

return(0);

}

int CheckMACross(modo int)

{

if(mode===1) int price = lMA1.price;

senão

if(mode===2) price = sMA1.price;

double price1 = iMA(Symbol(),0,1,0,1,1,PriceMode,1);

double ma1 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.shift,MA1.method, price,1);

double price0 = iMA(Symbol(),0,1,0,1,0,1,PriceMode,0);

duplo ma0 = iMA(Símbolo(),0,MA1.período,MA1.turno,MA1.método, preço,0);

if(ma1 > preço1 && ma0 <= preço0) retorno( 1);

senão

if(ma1 = preço0) retorno(-1);

senão

retorno(0);

}

{

if(mode == 1) SendMail("Signal for LONG",Symbol()+" Go Long"); //SendMail

senão

if(mode === 2) SendMail("Signal for SHORT",Symbol()+" Go Short");//SendMail

}

int lastBAlert = 0;

int lastSAlert = 0;

void EmailAlert(modo int)

{

if(mode == 2 && lastSAlert < Time[0] )

{

SendMail("Go Short 1",Symbol()+" Go Short 1"); //SendMail

lastSAlert = Tempo[0];

}

}

 
vonokpasah:
Estou apelando para os especialistas lá fora para por favor me ajudarem. Preciso de alguns para me ajudarem a construir um EXPERT ADVISER META 4 TRADER para mim, eu seria ótimo se meu pedido fosse atendido.

Milhões de maneiras de construir um especialista, em que você estava pensando?

 

ajuda do código fonte!

Olá a todos

Tenho um EA e quero acrescentar uma entrada a ele

Se tirar lucro >= :xx , comprar :xx lote

externo int Deltaopen1 =100;

Eu escrevi;

se (tipo == OP_BUY)

{

se (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)

{

Buy(Symbol(), GetLots2(), Ask, 0, 0, Magic2);

retornar;

}

}

se (tipo == OP_SELL)

{

if (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)

{

Sell(Symbol(), GetLots2(), Bid, 0, 0, Magic2);

retornar;

}

}

}

Mas não funciona,

Agradeço qualquer ajuda.

Obrigado.

 

Precisa de um pouco de ajuda para refinar esta EA

Eu tenho esta ea que é uma versão modificada da "GAPS EA" encontrada em outro lugar neste fórum.

De qualquer forma, em anexo está uma cópia do código.

#property link ""

//---- input parameters

extern int min_gapsize = 1;

extern double lotsize_gap = 5;

extern int MagicNumber = 10;

//----

datetime order_time = 0;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

/*

Thing to be done in future in this program to make it more efficient

and more powerful:

1. Make the dicission of the quantity of lots used according to

the scillators;

2. This program will catch the gaps.

Things to ware of:

1. the spread;

2. excuting the order not on the gap ends a little bit less.

*/

// Defining the variables to decide.

Print("order time", order_time);

double current_openprice = iOpen(Symbol(), 0, 0);

double previous_highprice = iHigh(Symbol(), 0, 1);

double previous_lowprice = iLow(Symbol(), 0, 1);

double point_gap = MarketInfo(Symbol(), MODE_POINT);

int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;

datetime current_time = iTime(Symbol(), 0, 0);

// catching the gap on sell upper gap

if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,

previous_highprice + spread_gap,

"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (sell) :-)", order_time);

//----

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//catching the gap on buy down gap

if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,

previous_lowprice - spread_gap,

"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (buy) :-)", order_time);

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

Sempre que coloco isto no testador de estratégia, ele não abre negócios. Uma rápida olhada no diário me diz que houve muitos horários de pedidos feitos. O que eu fiz de errado?

 

Ajuda: Pergunta básica do Histograma

Isto provavelmente é muito fácil e estou procurando algo além, mas estou sem recursos e não consigo encontrar uma resposta.

Tudo o que estou tentando fazer é lembrar o valor da barra de histogramas previamente desenhada.

Alguma idéia?

Isto é, Close[1] mostra a última barra fechada no gráfico.....

Então o que mostraria a última barra de histograma desenhada neste indicador de janela separada?

Obrigado por qualquer conselho com antecedência.

-dharsant

 
dharsant:
Isto provavelmente é muito fácil e eu estou procurando algo além, mas estou sem recursos e não consigo encontrar uma resposta.

Tudo o que estou tentando fazer é lembrar o valor da barra de histogramas previamente desenhada.

Alguma idéia?

Isto é, Close[1] mostra a última barra fechada no gráfico.....

Então o que mostraria a última barra de histograma desenhada neste indicador de janela separada?

Obrigado por qualquer conselho com antecedência.

-dharsant

Qual indicador você está chamando? Basta definir o turno para ligar para a barra anterior.

Exemplo, para uma média móvel da barra atual:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0);

Para uma média móvel anterior da barra:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);

O último parâmetro ao chamar um indicador significa quantas barras da corrente serão lidas.

Espero que isto seja o que você estava procurando.

 

Ajuda para a codificação necessária, por favor

Estou tentando usar um par de indicadores diferentes em uma ea, mas não consigo descobrir como implementá-los no sistema. Que parte do indicador eu uso para dizer comprar ou vender. Como faço para colocar a Slope Direction Line em parte de uma EA.

Saúde

Beno

Arquivos anexados:
 

Eu provavelmente não me expliquei muito bem.

Estou tentando descobrir o que preciso colocar no iCustom, isto é o que tenho feito abaixo.

duplo SDL=iCustom(NULL,0, "Slope Direction Line",período,método,preço)

E o que eu preciso fazer para gerar sinal de compra e venda do Indicador de Linha de Direção de Talude para minha EA. Abaixo está o que fiz até agora, ele compila, mas nenhuma posição está sendo gerada.

bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;

bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;

Qualquer ajuda seria ótima

Abraço

Beno

 

Primeiro, a chamada iCustom precisa de dois argumentos adicionais no final, a saber, qual dos buffers indicadores deve ser lido, e qual índice deve ser lido.

Em segundo lugar, "SDL" é um número duplo, então colocar apenas "SDL" como uma condição mostra alguma confusão; possivelmente ele compila como "SDL != 0", e possivelmente é isso que significa.