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
Hi,
é possível com código modificar apenas a ordem de compra ou venda do símbolo do gráfico ativo atual?
Será muito útil para mim em um script onde eu uso a função WindowsPriceonDropped para abrir um pedido.
Obrigado.
...
dasio,
Tente algo como isto :
{
if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
// do the proccessing you wish here
}
}
Hi,
é possível com código modificar apenas a ordem de compra ou venda do símbolo do gráfico ativo atual?
Será muito útil para mim em um script onde eu uso a função WindowsPriceonDropped para abrir um pedido.
ObrigadoQuem quer um desafio?
Preciso de algum código para fazer o seguinte, veja a captura de tela em anexo. Isto seria Comprar comércio.
Eu tentei um loop, uma confusão de se condições e nenhum dos dois produziu resultados que eu estou procurando.
Parece ser simples, mas não consegui colocá-lo em funcionamento.
Sua condição de entrada poderia ser escrita de forma similar a esta :
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
Preciso de algum código para fazer o seguinte, veja a captura de tela em anexo. Isto seria Comprar comércio.
Eu tentei um loop for loop, uma confusão de se as condições e nenhuma delas produziu resultados que eu estou procurando.
Parece ser simples, mas não consegui colocá-lo em funcionamento.Sua condição de entrada poderia ser escrita de forma semelhante a esta :
if (Digits==3 || Digits==5) pipMultiplier = 10;
double ma = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
bool openBuy = (Low[1]>ma && High[1]<(ma+5.0*Point*pipMultiplier));
if (openBuy)
{
// your code here
}
Mas há muito mais do que isso. O código que você postou me daria o sinal para a barra que atravessa a Média Móvel. Mas eu também preciso de uma maneira de entrar numa profissão em qualquer barra que ultrapasse a barra que se move até 5 barras, desde que não ultrapasse MA+5. A razão pela qual não estou aceitando um sinal de compra na barra de straddle é que existe outro indicador que deve mostrar um valor VERDADEIRO que pode não ser VERDADEIRO na barra de straddle, mas se for VERDADEIRO em qualquer barra até 5 barras além da barra de straddle e não tiver excedido o limite de MA +5, ainda posso aceitar uma troca. Não aceitando múltiplas trocas apenas uma por cada conjunto.
O seguinte é o que eu tenho até agora. Neste ponto, estou apenas marcando barras elegíveis com uma seta embaixo, compre apenas. Uma vez que eu tenha isso trabalhado, então colocarei meu código para executar a ordem. Sei que parece simples, mas a menos que esteja faltando algo óbvio, não é.
//+------------------------------------------------------------------+
double Poin;
//+------------------------------------------------------------------+
//| Custom initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if (Point==0.00001) Poin=0.0001;
else {
if (Point==0.001) Poin=0.01;
else Poin=Point;
}
//----
return(0);
}
//+------------------------------------------------------------------+
// +
//+------------------------------------------------------------------+
int deinit(){
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start(){
int MAM1StartBar=1;
int M1MAEntryPoint1=0;
int M1MAEntryPoint2=5;
string sObjName;
//------Indicators-------------//
double MAM0= iMA(NULL,0,20,0,0,0,MAM1StartBar);
double MAM1= iMA(NULL,0,20,0,0,0,MAM1StartBar+1);
double M1High0 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1High1 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1High2 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1High3 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1High4 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1High5 = NormalizeDouble(iHigh(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
double M1Low0 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar),Digits);
double M1Low1 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+1),Digits);
double M1Low2 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+2),Digits);
double M1Low3 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+3),Digits);
double M1Low4 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+4),Digits);
double M1Low5 = NormalizeDouble(iLow(NULL,PERIOD_M1,MAM1StartBar+5),Digits);
// double MAM1TRL1=NormalizeDouble(MAM0+M1MAEntryPoint1*Poin,Digits);
// double MAM1TRL2=NormalizeDouble(MAM0+M1MAEntryPoint2*Poin,Digits);
//Blue arrow indicates straddle bar
if(M1High0>= MAM0 && M1Low0<=MAM0){
sObjName="Test_BLine1"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1.5*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Blue);
}
//Aqua arrow indicates straddle bar+1
if(M1Low1=MAM0){
if(M1High1<=MAM0+M1MAEntryPoint2*Poin){
if(M1Low0 > MAM0){
sObjName="Test_BLine2"+Time[MAM1StartBar];
ObjectCreate(sObjName, OBJ_ARROW, 0, Time[MAM1StartBar],Low[MAM1StartBar]-1*Poin);
ObjectSet(sObjName, OBJPROP_ARROWCODE, 241);
ObjectSet(sObjName, OBJPROP_COLOR, Aqua);
}
}
}
//----
return(0);
}
Nesta captura de tela você precisaria abortar na barra 4 porque a barra 3 excede o limite de MA +5, o que significa que na barra 4 você precisaria verificar se a barra 3 excedeu o limite de MA +5, o que é o fim desta configuração comercial.
Aqui todas as 5 barras são elegíveis porque nenhuma delas excedeu o limite de MA +5
Nesta captura de tela, você precisaria abortar na barra 4 porque a barra 3 excede o limite MA +5, o que significa que na barra 4 você precisaria verificar se a barra 3 excedeu o limite MA +5, isso é o fim desta configuração comercial.
Aqui todas as 5 barras são elegíveis porque nenhuma delas excedeu o limite de MA +5
...
ciber1
Em seus exemplos, pelo que vejo, para poder abortar como você descreve, você também tem que conhecer o futuro (já que antes da barra "abortar" as regras se aplicavam e devolviam um sinal de "vai")
Por outro lado, se você tentar testar todas as barras de volta para a condição de entrar, eventualmente você sempre terá uma "quebra de regra" e não será capaz de entrar na posição
Nesta captura de tela, você precisaria abortar na barra 4 porque a barra 3 excede o limite MA +5, o que significa que na barra 4 você precisaria verificar se a barra 3 excedeu o limite MA +5, isso é o fim desta configuração comercial.
Aqui todas as 5 barras são elegíveis porque nenhuma delas excedeu o limite MA +5
Fechar todos os EA de Comércio Aberto
Alguém pode me ajudar a fazer esta ea?
Esta EA fechará o par comercial sempre aberto quando atingir o objetivo de lucro e prejuízo.
Quando fechar tudo, então comece a monitorar o comércio aberto.
Eu tenho um talento limitado para fazer isso.
Esta ea separada da ea principal de cada par.
Linhas dinâmicas de sinal e resistência/suporte.
Você pode me ajudar a traduzir este indicador no idioma MT4?
a:=(hhv(fechar,tpr)+llv(fechar,tpr)+close)/3;
b:=(a1*2)-hhhv(close,tpr)+close)/3; b:=(a1*2)-hhhv(close,tpr);
movendo b:=mov(b,tpr,simples);
c:=(a1*2)-llv(close,tpr)+close)/3; c:=(a1*2)-llv(close,tpr);
movendo c:=mov(c,tpr,simples);
d:=(hhv(close,tpr/2)+llv(close,tpr/2)+close)/3;
movendo d:=mov(d,tpr/2,simples);
fluxo:=(b+c+d)/3;
movendo fluxo:=mov(fluxo,tpr,simples).
hhv= valor máximo do período (o valor mais alto de preço fechado no período de tempo escolhido)
llv= valor mínimo do período (o menor valor de preço fechado no período de tempo escolhido)
tpr= período de tempo (de 1 até o que você quiser)
mov= média móvel.
A saída deve ter "fluxo" e "fluxo em movimento"! Mesmo que também tenha "b", "moving b", "c", "moving c", "d" e "moving d", não é uma coisa ruim!
Obrigado.
Este fórum é ótimo......
Lucmat