[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 304
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
O problema é que a EA reabre constantemente os pedidos, ou seja, há um sinal de compra - ela abre um pedido, depois o fecha com lucro, e as condições ainda são preservadas, ela o abre novamente.
Pensei que poderia ser resolvido com o contador tradicional de compra e venda - se a ordem de compra abrisse o contador +1 e uma nova compra não pudesse ser aberta até que o contador estivesse acima de 0 e o contador fosse reiniciado somente após a venda.
Ou seja, há um sinal em uma barra, mas já foi usado?
Você poderia fazer isso assim
Experimente assim.
Deve funcionar nos dois sentidos.
Faz mais sentido para mim.
Olá a todos!
Desculpe pelo fora do tópico, o tópico é procurado, é por isso que estou escrevendo aqui, você pode me dar uma dica? Emperrado.
Como, utilizando apenas operações elementares (+-*/%), realizar a exponenciação (incluindo real) de um número real? Por exemplo, a calculadora de vento, quando aplicada à potência de 1,2, dá o resultado 1,2445647472073939777218169154111826. Interessado no algoritmo, o idioma não importa, nenhum. Eu mesmo a traduzirei.
ZS. Quantos testes de programação não foram feitos, vejo tal problema pela primeira vez, embora possa ser trivial para alguém?
Boa tarde a todos!
Procurei muitos fóruns e artigos no google , mas não encontrei uma resposta.
Decidi escrever um EA para negociar em duas encomendas opostas em М1
A idéia é simples: colocar duas ordens opostas com TP pequeno, então, quando o TP de um deles para o segundo timer ativado for o número de barras (digamos 5), ele será SL temporário. O cálculo é que se a moeda se moverá na mesma direção, as perdas quando a segunda ordem aciona o SL temporário serão mínimas, se o gráfico se inverter, estaremos no preto em duas posições.
Não sei como escrever um fragmento de código com"quando um TP de um deles aciona, o cronômetro do segundo liga como um número de barras".
atualmente só tenho um timer para dois pedidos ao mesmo tempo, mas não consigo tirar muito proveito disso
PS Eu não resolvo este problema há um mês, por favor me ajude com conselhos ou código:)
aqui está o código do assessor
extern int SL=100;
extern int TP=100;
extern double StartLot=0.1;
extern double StopLot=1.0;
extern int bar_time=20;
double Lot()
{
double lt;
if(OrdersHistoryTotal()==0) return (StartLot);
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()<0)
{
lt=OrderLots()*2;
if(lt>StopLot) return (StartLot);
else return (lt);
}
else
return (StartLot);
}
else
return (StartLot);
}
int start()
{
double lot;
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
{
int order;
{
lot=Lot();
order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);
}
}
//вот здесь должно быть что-то что является решением проблемы и связующим звеном
{
int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;
if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }
if ( bars >= bar_time )
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);
}
return(0);
}
Obrigado de antemão
Ou seja, há um sinal em uma barra, mas já foi usado?
Você poderia fazer isso
Olá a todos!
Desculpe pelo fora do tópico, o tópico é procurado, é por isso que estou escrevendo aqui, você pode me dar uma dica? Emperrado.
Como, utilizando apenas operações elementares (+-*/%), realizar a exponenciação (incluindo real) de um número real? Por exemplo, a calculadora de vento, quando aplicada à potência de 1,2, dá o resultado 1,2445647472073939777218169154111826. Interessado no algoritmo, o idioma não importa, nenhum. Eu mesmo a traduzirei.
ZS. Quantos testes de programação eu ainda não fiz, esta é a primeira vez que vejo tal problema, embora possa ser trivial para algumas pessoas?
https://docs.mql4.com/ru/math/MathPow não? Ou operações elementares são uma condição do problema. Então a opção http://bpascal.ru/download/desc/436.php se você fizer tudo à mão, então implemente expoente e logaritmo com suas próprias funções.
Você usa while(i>=0), então quando uma nova vela aparece i=1 (para garantir que os dados da vela anterior sejam calculados uma vez sobre os dados fixos).
Por que entrar some_time=D'1971.01.11 00:00'; use Bars, IndicatorCounted não funciona para mim (bem, o erro é provavelmente por causa da primeira_t_bar).
Seu algoritmo e você deve consertá-lo.
"Sou novo na programação."Sou novo na programação desde 2007).
Mesmo assim, não entendo porque meu projeto funciona bem e o padrão não funciona. some_time=D'1971.01.11 00:00'; aqui ele é usado uma vez na inicialização. Então a data é alterada para outra, mas não tem nada a ver com isso, pois funciona em um caso e não em outro. Refazerei o indicador mais tarde. Esta é uma versão modificada de outro indicador. Obrigado pela resposta!
Boa tarde a todos!
Procurei muitos fóruns e artigos no google , mas não encontrei uma resposta.
Decidi escrever uma EA para negociar em duas encomendas opostas em М1
A idéia é simples: colocar duas ordens opostas com TP pequeno, então, quando o TP de um deles para o segundo timer ativado for o número de barras (digamos 5), ele será SL temporário. O cálculo é que se a moeda se moverá na mesma direção, as perdas quando a segunda ordem aciona o SL temporário serão mínimas, se o gráfico se inverter, estaremos no preto em duas posições.
Não sei como escrever um fragmento de código com"quando um TP de um deles aciona, o cronômetro do segundo liga como um número de barras".
atualmente só tenho um timer para dois pedidos ao mesmo tempo, mas não consigo tirar muito proveito disso
PS Eu não resolvo este problema há um mês, por favor me ajude com conselhos ou código:)
aqui está o código
................................................
Agradecemos antecipadamente
1. Se houver uma posição fechada em um Takei...
1.1 Se seu tipo for OP_BUY, ...
1.1.2 Se houver uma posição aberta OP_SELL, ...
1.1.3 Se o tempo da barra atual menos o tempo da barra que abre a posição de venda for maior ou igual ao número de barras para o atraso, ....
1.1.4 Nós fechamos a posição de Venda
1.2 Se seu tipo for OP_SELL, ...
1.2.2 Se houver uma posição aberta OP_BUY, ...
1.2.3 Se o tempo da barra atual menos o tempo da abertura da posição de compra for maior ou igual ao número de barras a segurar, ....
1.2.4 Fechar Posição de compra
Boa noite a todos, peço desculpas pela estúpida pergunta anterior)
Quero saber se é possível que uma EA onde há uma variável, digamos "A", receba um valor de preço no momento e que seja comercializada. Se quisermos mudar este valor para qualquer valor histórico, por exemplo, pegue qualquer valor mensal e obtenha o valor desejado da análise do histórico. Tentei fazer isso no testador de estratégia, mas tenho muitas dúvidas quanto à sua correção. Ou terei que refazê-lo e trabalhar com arrays! Obrigado a todos vocês.
p.s. Quero saber, já que não o encontrei no manual e tutorial da MQL.