Ajuda na codificação - página 159

 
mladen:
Não mude essa parte do código. Essa parte do código é verificar se o seu corretor tem 4 ou 5 dígitos. Além disso, aqui está um teste usando um depósito inicial de 500 dólares (risco de 5% de stop loss 20 pips, EURUSD usado para teste) e funciona mesmo com esse depósito inicial também

Olá, Mladen.

Ontem, perguntei a você sobre a codificação do pedido.

Mas é muito complexo.

Sinto muito, porque quero uma codificação simples.

Assim mesmo:

Saldo da conta: $500

com um risco de 5% , lotes abertos= $0,25

lotes=$500*(risco/100)

lotes=$500*(0.05/100)

lotes=$500(0.0005)

lotes=$0,25

Acabou de gostar deste carro EA abrir um lote de $0,25.

E os lotes não são misturados com Stoploss ou TProfit.

Espero que você possa me ajudar a resolver este problema.

Muito obrigado.

extern double lots = 0.1;extern double stopsize = 20;

extern double profsize = 10;

extern double Risk =5;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

double sl = stopsize*Point*MathPow(10,Digits%2);

double tp = profsize*Point*MathPow(10,Digits%2);

stop = (Ask-sl);

prof = (Ask+tp);

ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

//

//

//

//

//

double getLots(double stopLoss, double risk)

{

RefreshRates();

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

double step = MarketInfo(Symbol(),MODE_LOTSTEP);

double minLot = MarketInfo(Symbol(),MODE_MINLOT);

double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);

double lots = minLot;

if (risk>0 && stopLoss>0)

{

lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);

}

return(MathMax(MathMin(lots,maxLot),minLot));

}
 
hock87:
Olá, Mladen.

Ontem, perguntei a você sobre a codificação do pedido.

Mas é muito complexo.

Sinto muito, porque quero uma codificação simples.

Assim mesmo:

Saldo da conta: $500

com um risco de 5% , lotes abertos= $0,25

lotes=$500*(risco/100)

lotes=$500*(0.05/100)

lotes=$500(0.0005)

lotes=$0,25

Acabou de gostar deste carro EA abrir um lote de $0,25.

E os lotes não são misturados com Stoploss ou TProfit.

Espero que você possa me ajudar a resolver este problema.

Muito obrigado.

extern double lots = 0.1;extern double stopsize = 20;

extern double profsize = 10;

extern double Risk =5;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

double sl = stopsize*Point*MathPow(10,Digits%2);

double tp = profsize*Point*MathPow(10,Digits%2);

stop = (Ask-sl);

prof = (Ask+tp);

ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

//

//

//

//

//

double getLots(double stopLoss, double risk)

{

RefreshRates();

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

double step = MarketInfo(Symbol(),MODE_LOTSTEP);

double minLot = MarketInfo(Symbol(),MODE_MINLOT);

double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);

double lots = minLot;

if (risk>0 && stopLoss>0)

{

lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);

}

return(MathMax(MathMin(lots,maxLot),minLot));

}

hock87

Não há uma maneira simples(r) de calcular o tamanho do lote quando se leva em conta o patrimônio líquido, o prejuízo cessante e o risco necessário. Além disso, você não pode calcular o risco sem conhecer o stop loss (pense nisso: se você abrir um pedido, digamos, de tamanho 1 lote e fechar que depois de 1 pip ou fechá-lo depois de 100 pips as perdas (e assim o risco que foi assumido) não serão as mesmas e não podem ser as mesmas).

Se você calcular assim (sem uma parada de perda conhecida) então não é o cálculo do risco, mas um simples cálculo do tamanho do lote (que não implica qualquer tipo de cálculo de risco).

 
mladen:
hock87

Não há uma maneira simples(r) de calcular o tamanho do lote quando se leva em conta o patrimônio líquido, o prejuízo cessante e o risco necessário. Além disso, você não pode calcular o risco sem conhecer o stop loss (pense nisso: se você abrir um pedido, digamos, de tamanho 1 lote e fechar que depois de 1 pip ou fechá-lo depois de 100 pips as perdas (e assim o risco que foi assumido) não serão as mesmas e não podem ser as mesmas).

Se você calcular assim (sem um stop loss conhecido), então não é o cálculo do risco, mas um simples cálculo do tamanho do lote (que não implica qualquer tipo de cálculo de risco)

Mladen, você está certo.

Eu sei que isso não implica em nenhum tipo de cálculo de risco.

e só quero um simples cálculo do tamanho do lote,

deixá-lo calcular automaticamente o tamanho do lote com o saldo da conta com %.

lots=$500*(risk%/100)

lotes=$500*(0.05/100)

lotes=$500(0.0005)

lotes=$0,25

Acabou de gostar deste carro EA abrir um lote de $0,25.

E os lotes não são misturados com Stoploss ou TProfit.

Como codificá-lo?

Obrigado.

 
hock87:
Mladen, você está certo.

Eu sei que isso não implica em nenhum tipo de cálculo de risco.

e só quero um simples cálculo do tamanho do lote,

deixá-lo calcular automaticamente o tamanho do lote com o saldo da conta com %.

lots=$500*(risk%/100)

lotes=$500*(0.05/100)

lotes=$500(0.0005)

lotes=$0,25

Acabou de gostar deste carro EA abrir um lote de $0,25.

E os lotes não são misturados com Stoploss ou TProfit.

Como codificá-lo?

Obrigado.

Tente como é descrito por KimIV aqui : b-Lots

 

Graças ao mladen, acho que é semelhante ao que na minha mente#1579, a propósito, é possível converter o DPO da mesma forma que as equações RSI ou MFI normalizam a escala vertical?Oscilador de Preço Detendido - Base de Código MQL4, obrigado novamente.

 
kenwa:
Graças ao mladen, acho que é semelhante ao que na minha mente#1579, a propósito, é possível converter o DPO da mesma forma que as equações RSI ou MFI normalizam a escala vertical?Oscilador de Preço Detendido - Base de Código MQL4, obrigado novamente.

kenwa

Uma vez quando você tiver um modelo não difícil

Aqui está um rsi de um dpo. O superior é o DPO e o inferior é o RSI de um DPO.

Arquivos anexados:
 

oi mladen, eu recebi seu rsi de macd antes, ele é feito com formas/lógicas similares a estes índices de força FI e DPO recentes?

anexei suas novas versões rsi feitas recenlty(FI e DPO) em meu computador, encontro um problema se uso a função icustom para lembrar seus valores de saída, não é de 0 a 100 como mostrado no gráfico, mas de -100 a 0 a 100, qualquer comentário do porquê, é que eu me refiro erroneamente ao valor interno do buffer? obrigado pelo conselho.

Arquivos anexados:
 

Olá, Mladen.

Eu tenho um problema,

quando o preço da ordem de compra aberta se move para direção inversa e preço de mercado à distância acima de 25 pontos,

abre automaticamente uma ordem de compra novamente.

Como codificar esta estratégia?

Obrigado.

extern double lots = 0.1;

extern double stopsize = 50;

extern double profsize = 20;

int err;

int ticket;

double stop;

double prof;

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);

stop=(Ask+stopsize*Point);

prof=(Ask-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

// Comment("This is a test ", err, " ", stop, " ", prof);

Comment(" ");

return(0);

}
 
hock87:
Olá, Mladen.

Eu tenho um problema ,

quando o preço da ordem de compra aberta se move para direção inversa e preço de mercado à distância acima de 25 pontos,

abre automaticamente uma ordem de compra novamente.

Como codificar esta estratégia?

Obrigado.

extern double lots = 0.1;

extern double stopsize = 50;

extern double profsize = 20;

int err;

int ticket;

double stop;

double prof;

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);

stop=(Ask+stopsize*Point);

prof=(Ask-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

// Comment("This is a test ", err, " ", stop, " ", prof);

Comment(" ");

return(0);

}

hock87

Esse código não será compilado (substitua OP_Buy por OP_BUY) e não vejo nenhuma condição para a abertura de outro pedido. Por momento você está permitindo apenas um pedido (a linha "se (TotalOrders<1)") Esse deve ser seu ponto de partida

 

CCI fdoe hpp

Eu baixei este indicador de um dos fios e ele é muito melhor do que os indicadores CCI-zonas ou Ma-zonas.

Ele pode ser adaptado para ser exibido na tela como em um indicador de zona?

Ele é ajustado para a configuração CCI 13, mas se puder ser transformado em um indicador de configuração variável facilmente, isso seria um bônus - mas muito mais um pedido secundário.

É um indicador Forex-TSD, mas nenhuma pasta mq4 estava com ele.

Obrigado

TEAMTRADER

Arquivos anexados:
cci_fdoehpp.ex4  19 kb