Caros senhores, fiquei intrigado com a solução de um problema relacionado com as solicitações.
Situação: Expert Advisor abre ordens do mercado com paradas duras e aquisições em pips, trabalha em um bar fechado, M15. Um sinal para abrir o pedido é recebido e o Expert Advisor tenta abrir o pedido várias vezes, mas ele falha. Na barra seguinte o sinal se repete e o Expert Advisor abre o negócio, mas a tarifa deixou o ponto onde o primeiro sinal foi dado. Acontece que a parada e a tomada serão definidas a partir do ritmo em que o negócio foi aberto, e não a partir do ritmo em que o primeiro sinal for aberto. Escrevi uma construção tal que, ao estabelecer uma parada e uma tomada, o Conselheiro Especialista tomaria o preço ao qual o primeiro sinal era recebido.
if(sg==1 && TimeCurrent()-buy_time>=1800) {buy_price=Ask;buy_time=TimeCurrent();}//if(sg==-1 && TimeCurrent()-sell_time>=1800) {sell_price=Bid;sell_time=TimeCurrent();}//
где,
sg==1 сигнал на покупку
sg==-1 сигнал на продажу
buy_time - переменная в которую запоминаем время поступления сигнала на покупку
sell_time - переменная в которую запоминаем время поступления сигнала на продажу
при выставлении ордера стоп и тейк прибавляем/вычитаем не от текущей цены а от buy_price и sell_price
Quero explicar por que quero usar o primeiro sinal: as paradas e tomadas foram selecionadas no testador e são mais ou menos ótimas, se definirmos paradas/paradas a partir do segundo sinal, elas não serão ótimas porque a taxa real de abertura difere da taxa no primeiro sinal.
O total de encomendas é 1, ou seja, nunca chegamos à mais antiga. Em segundo lugar, ela arrasta ordens do mais novo para o mais velho, e os mais velhos podem ser fechados usando o stop ou take antes que a traineira chegue a ela. Em geral, o que não funciona, você tem registros de erros?
O TS não funciona, várias vezes notei que "como projetado" ele não fecha as posições de modo algum.
E quanto ao fechamento de pedidos, poderia escrever mais detalhes, pois a EA é multi-moeda, mas com um limite de 1 negociação em uma moeda de cada vez.
A tarefa é abrir uma ordem a uma certa distância "Adicionar" de uma ordem já aberta.
As ordens de compra e venda separadas são controladas.
Eu escrevi este código. Parece estar funcionando, mas às vezes o preço cobre uma distância maior do que o "Add", mas o pedido não é aberto.
Já experimentei impressões, mas a condição "adicionar" não funciona corretamente e não sei o que está errado.
Talvez alguém me diga o que devo fazer?
As características de Igor Kim, de forma simples e conveniente.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |7//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает расстояние в пунктах между рынком и ближайшей |//| позицей |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| op - торговая операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
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) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return(r);
}
Caros senhores, fiquei intrigado com a solução de um problema relacionado com as solicitações.
Situação: Expert Advisor abre ordens do mercado com paradas duras e aquisições em pips, trabalha em um bar fechado, M15. Um sinal para abrir o pedido é recebido e o Expert Advisor tenta abrir o pedido várias vezes, mas ele falha. Na barra seguinte o sinal se repete e o Expert Advisor abre o negócio, mas a tarifa deixou o ponto onde o primeiro sinal foi dado. Acontece que a parada e a tomada serão definidas a partir do ritmo em que o negócio foi aberto, e não a partir do ritmo em que o primeiro sinal for aberto. Escrevi uma construção tal que, ao estabelecer uma parada e uma tomada, o Conselheiro Especialista tomaria o preço ao qual o primeiro sinal era recebido.
Quero explicar por que quero usar o primeiro sinal: as paradas e tomadas de tamanho foram selecionadas no testador e são mais ou menos ótimas, se você definir paradas/paradas a partir do segundo sinal, vai descobrir que elas não são ótimas, porque a taxa de abertura real do negócio é diferente da taxa no primeiro sinal.
Acontece que a otimização é determinada apenas pelos níveis de tp e sl, enquanto o preço do negócio pode ser qualquer? Isso não parece lógico.
alsu: Acontece que a otimização é determinada apenas pelos níveis de tp e sl, enquanto o preço do negócio pode ser qualquer? Não parece lógico.
A otimização não é determinada apenas por uma parada e tomada, é determinada principalmente pelos parâmetros do sinal para abrir um negócio, eu não dei estes sinais para não sobrecarregar minha pergunta, os parâmetros do sinal na verdade não se relacionam com o problema em questão. O preço do negócio pode ser qualquer um, se o sinal para abrir o negócio for salvo.
Eu ficaria grato se você pudesse dar sua opinião sobre a essência da minha pergunta, ou seja, se o código para o cálculo dos níveis a partir dos quais uma parada e uma tomada será calculada está escrito corretamente?
Não tenho o código à mão, mas fiz algo semelhante para mim mesmo, mas não assim: lembrei-me da hora da barra em que havia um sinal, e quando um pedido foi feito usando este sinal, redefini o tempo do sinal para zero, e assim por diante:
Bem, se a pergunta é sobre lutar apenas contra as solicitações, então olhe na linha de Igor Kim, quase todas as funções para fazer pedidos têm um parâmetro para quantas vezes tentar fazer o pedido
A otimização não é determinada apenas por uma parada e tomada, é determinada principalmente pelos parâmetros do sinal para abrir um negócio, eu não dei estes sinais para não sobrecarregar minha pergunta, os parâmetros do sinal na verdade não se relacionam com o problema em questão. O preço do negócio pode ser qualquer um, se o sinal para abrir o negócio for salvo.
Serei grato se você disser sobre a essência da minha pergunta, ou seja, se o código para o cálculo dos níveis a partir dos quais o stop and take será calculado corretamente está escrito?
Sim, está escrito corretamente, mas imagine a situação: o preço "real" do negócio ficou, por exemplo, acima do TP memorizado - o que você vai fazer então? (e esta situação é bem real - as solicitações são apenas freqüentes no mercado rápido, quando o preço sobe)
alsu: A escrita está correta, mas imagine a situação: o preço "real" do negócio acabou sendo, por exemplo, acima do TP memorizado - o que você vai fazer então? (E esta situação é bem real - as solicitações são apenas frequentes no mercado rápido, quando o preço sobe)
Obrigado por sua opinião.
Se o preço acabar sendo maior que o TP memorizado, então o comércio será aberto com o nível mínimo de takeaway, tal processamento é inerente ao EA.
PS A propósito, terei que tentar colocar uma proibição de abertura de posição se o novo preço se afastasse do preço memorizado a mais de uma certa distância, obrigado pelo pensamento, gostaria de poder verificá-lo no testador, apenas no comércio.
Que tal dois?
Caros senhores, fiquei intrigado com a solução de um problema relacionado com as solicitações.
Situação: Expert Advisor abre ordens do mercado com paradas duras e aquisições em pips, trabalha em um bar fechado, M15. Um sinal para abrir o pedido é recebido e o Expert Advisor tenta abrir o pedido várias vezes, mas ele falha. Na barra seguinte o sinal se repete e o Expert Advisor abre o negócio, mas a tarifa deixou o ponto onde o primeiro sinal foi dado. Acontece que a parada e a tomada serão definidas a partir do ritmo em que o negócio foi aberto, e não a partir do ritmo em que o primeiro sinal for aberto. Escrevi uma construção tal que, ao estabelecer uma parada e uma tomada, o Conselheiro Especialista tomaria o preço ao qual o primeiro sinal era recebido.
Quero explicar por que quero usar o primeiro sinal: as paradas e tomadas foram selecionadas no testador e são mais ou menos ótimas, se definirmos paradas/paradas a partir do segundo sinal, elas não serão ótimas porque a taxa real de abertura difere da taxa no primeiro sinal.
O total de encomendas é 1, ou seja, nunca chegamos à mais antiga. Em segundo lugar, ela arrasta ordens do mais novo para o mais velho, e os mais velhos podem ser fechados usando o stop ou take antes que a traineira chegue a ela. Em geral, o que não funciona, você tem registros de erros?
O TS não funciona, várias vezes notei que "como projetado" ele não fecha as posições de modo algum.
E quanto ao fechamento de pedidos, poderia escrever mais detalhes, pois a EA é multi-moeda, mas com um limite de 1 negociação em uma moeda de cada vez.
As características de Igor Kim, de forma simples e conveniente.
Caros senhores, fiquei intrigado com a solução de um problema relacionado com as solicitações.
Situação: Expert Advisor abre ordens do mercado com paradas duras e aquisições em pips, trabalha em um bar fechado, M15. Um sinal para abrir o pedido é recebido e o Expert Advisor tenta abrir o pedido várias vezes, mas ele falha. Na barra seguinte o sinal se repete e o Expert Advisor abre o negócio, mas a tarifa deixou o ponto onde o primeiro sinal foi dado. Acontece que a parada e a tomada serão definidas a partir do ritmo em que o negócio foi aberto, e não a partir do ritmo em que o primeiro sinal for aberto. Escrevi uma construção tal que, ao estabelecer uma parada e uma tomada, o Conselheiro Especialista tomaria o preço ao qual o primeiro sinal era recebido.
Quero explicar por que quero usar o primeiro sinal: as paradas e tomadas de tamanho foram selecionadas no testador e são mais ou menos ótimas, se você definir paradas/paradas a partir do segundo sinal, vai descobrir que elas não são ótimas, porque a taxa de abertura real do negócio é diferente da taxa no primeiro sinal.
Acontece que a otimização é determinada apenas pelos níveis de tp e sl, enquanto o preço do negócio pode ser qualquer? Não parece lógico.
A otimização não é determinada apenas por uma parada e tomada, é determinada principalmente pelos parâmetros do sinal para abrir um negócio, eu não dei estes sinais para não sobrecarregar minha pergunta, os parâmetros do sinal na verdade não se relacionam com o problema em questão. O preço do negócio pode ser qualquer um, se o sinal para abrir o negócio for salvo.
Eu ficaria grato se você pudesse dar sua opinião sobre a essência da minha pergunta, ou seja, se o código para o cálculo dos níveis a partir dos quais uma parada e uma tomada será calculada está escrito corretamente?
Não tenho o código à mão, mas fiz algo semelhante para mim mesmo, mas não assim: lembrei-me da hora da barra em que havia um sinal, e quando um pedido foi feito usando este sinal, redefini o tempo do sinal para zero, e assim por diante:
Bem, se a pergunta é sobre lutar apenas contra as solicitações, então olhe na linha de Igor Kim, quase todas as funções para fazer pedidos têm um parâmetro para quantas vezes tentar fazer o pedidoA otimização não é determinada apenas por uma parada e tomada, é determinada principalmente pelos parâmetros do sinal para abrir um negócio, eu não dei estes sinais para não sobrecarregar minha pergunta, os parâmetros do sinal na verdade não se relacionam com o problema em questão. O preço do negócio pode ser qualquer um, se o sinal para abrir o negócio for salvo.
Serei grato se você disser sobre a essência da minha pergunta, ou seja, se o código para o cálculo dos níveis a partir dos quais o stop and take será calculado corretamente está escrito?
A escrita está correta, mas imagine a situação: o preço "real" do negócio acabou sendo, por exemplo, acima do TP memorizado - o que você vai fazer então? (E esta situação é bem real - as solicitações são apenas frequentes no mercado rápido, quando o preço sobe)
Obrigado por sua opinião.
Se o preço acabar sendo maior que o TP memorizado, então o comércio será aberto com o nível mínimo de takeaway, tal processamento é inerente ao EA.
PS A propósito, terei que tentar colocar uma proibição de abertura de posição se o novo preço se afastasse do preço memorizado a mais de uma certa distância, obrigado pelo pensamento, gostaria de poder verificá-lo no testador, apenas no comércio.