[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 619
atualizar os dados antes da abertura, normalizar o preço
Vinina:
Escrevi imediatamente que este fechamento não é recomendado. Um recurso indocumentado está sendo usado. Mas qualquer posição aberta tem um tempo de fechamento zero, e o preço de fechamento será igual ao preço de fechamento atual.
Alguém fez uma simples parada de rastreamento mover uma ordem pendente atrás do preço em vez do nível de parada? É possível fazer? Eu tentei e tentei, mas tudo o que consegui foi que a ordem pendente se mova para trás e para frente atrás do preço como um homem doente...
É possível retrabalhar a simples função de rastreamento para que ela lide com pedidos em vez de paradas? Por exemplo, este aqui:
//+----------------------------------------------------------------------------+//| Сопровождение позиции простым тралом |//| Параметры: |//| sy - наименование инструмента ("" - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+void TrailingPositionsSimplTR(string sy="", int op=-1, int mn=-1) {
double p, pp;
int i, k=OrdersTotal();
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
pp=MarketInfo(sy, MODE_BID);
if (!ProfitTrailing || (pp-OrderOpenPrice())>TrailingStopBuy*p) {
if (OrderStopLoss()<pp-(TrailingStopBuy+TrailingStepSimplTR-1)*p) {
ModifyOrder(sy, -1, pp-TrailingStopBuy*p, 0, clModifyBuy);//
}
}
}
if (OrderType()==OP_SELL) {
pp=MarketInfo(sy, MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-pp>TrailingStopSell*p) {
if (OrderStopLoss()>pp+(TrailingStopSell+TrailingStepSimplTR-1)*p || OrderStopLoss()==0) {
ModifyOrder(sy, -1, pp+TrailingStopSell*p, 0, clModifySell);
}
}
}
}
}
}
}
}
A impressão() arredonda até 4 dígitos para emitir corretamente para o console o tipo duplo(que retornaiOpen() 5 casas decimais, neste caso), você deve usar a função DoubleToStr()
stringDoubleToStr( valor duplo, dígitos int ) Converte um valor numérico para uma string de texto contendo uma representação de caracteres de um número no formato de precisão especificado.
Parâmetros:
value- Величина с плавающей точкой.
digits- Формат точности, число цифр после десятичной точки (громное спасибо.
artmedia70: Alguém fez uma simples parada de rastreamento mover uma ordem pendente atrás do preço em vez do nível de parada? É possível fazer? Eu tentei e tentei, mas tudo o que consegui foi que a ordem pendente andasse para trás e para a frente atrás do preço como uma pessoa doente.
É possível retrabalhar a simples função de rastreamento para que ela lide com pedidos em vez de paradas? Por exemplo, este aqui:
Tudo é muito complicado :)))) Aqui está meu código
for (i =0;i<OrdersTotal();i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true&&OrderMagicNumber()==MAGICMA&&OrderSymbol()==Symbol())
{
if (MathAbs(funk-OrderOpenPrice())>Point)
{
if (OrderType()==OP_BUYSTOP||OrderType()==OP_BUYLIMIT&&MathAbs(Ask-funk)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
OrderModify(OrderTicket(),NormalizeDouble(funk,Digits),OrderStopLoss(),NormalizeDouble(funk+TakeProfiti*Point,Digits),0);
}
if (OrderType()==OP_SELLSTOP||OrderType()==OP_SELLLIMIT&&MathAbs(Bid-funk)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
OrderModify(OrderTicket(),NormalizeDouble(funk,Digits),OrderStopLoss(),NormalizeDouble(funk-TakeProfiti*Point,Digits),0);
}
}
}
}
algo como isto, onde a ordem é arrastada de acordo com o valor do funk calculado
O que você pode fazer a respeito disso?
atualizar os dados antes da abertura, normalizar o preço
Escrevi imediatamente que este fechamento não é recomendado. Um recurso indocumentado está sendo usado. Mas qualquer posição aberta tem um tempo de fechamento zero, e o preço de fechamento será igual ao preço de fechamento atual.
depois de todas essas experiências já é óbvio)
O que pode ser feito a respeito?
Veja cuidadosamente os preços que você fixa ao abrir uma posição. Certamente deve haver... Ask está misturado com Bid?
Sim, é. Eu tenho.
é. Obrigado.
Eu tentei e tentei, mas tudo o que consegui foi que a ordem pendente se mova para trás e para frente atrás do preço como um homem doente...
É possível retrabalhar a simples função de rastreamento para que ela lide com pedidos em vez de paradas? Por exemplo, este aqui:
A impressão() arredonda até 4 dígitos para emitir corretamente para o console o tipo duplo(que retorna iOpen() 5 casas decimais, neste caso), você deve usar a função DoubleToStr()
string DoubleToStr( valor duplo, dígitos int )
Converte um valor numérico para uma string de texto contendo uma representação de caracteres de um número no formato de precisão especificado.
Parâmetros:
value - Величина с плавающей точкой.
digits - Формат точности, число цифр после десятичной точки (громное спасибо.
Muito obrigado .
Confira esta EA, eu a implementei lá
http://www.rogersignals.com/ru/experts.php?a=Support_Resistance
Alguém fez uma simples parada de rastreamento mover uma ordem pendente atrás do preço em vez do nível de parada? É possível fazer?
Eu tentei e tentei, mas tudo o que consegui foi que a ordem pendente andasse para trás e para a frente atrás do preço como uma pessoa doente.
É possível retrabalhar a simples função de rastreamento para que ela lide com pedidos em vez de paradas? Por exemplo, este aqui:
Tudo é muito complicado :))))
Passar no método como parâmetros a medge retardada e a trall desejada.Aqui está meu código
É um pouco complicado demais para você :))
Pass in method as parameters a delayed medjw, and desired trall.Aqui está meu código