Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 962

 
rapid_minus:

Por favor, esclareça, estou totalmente confuso:

Encontrei um roteiro que fecha os pedidos com lucro ou com menos, mas não entendo a lógica - em variáveis externas bool close_only_profit_orders=false está definido, e então em f-i start ele é verificado por negação: if(OrderType()==OP_BUY && (!close_only_profit_orders || order_prof>0). Isto é, se não for falso ou houver ordens com lucro, então a função OrderClose() é a seguinte. Mas em nenhum lugar do código, não há condições sob as quais a variável close_only_profit_orders se torne verdadeira. Então para que serve?


Não há nada a ser encontrado por esta variável. Isto é um produto da imaginação do programador; somente o desenvolvedor sabe o que está em sua EA. Só posso especular por que razão isso pode acontecer e como verificá-lo. Acabo de conhecer uma EA que estupidamente fechou todos os pedidos em todos os pares antes de começar a funcionar. Bem, isso é um produto da imaginação do programador. Assim, se seu consultor especializado trabalhar como deve, temos que procurar onde foi escrito para fechar os pedidos e por que motivo. Talvez, mágicos diferentes ajudem.
 

Por favor, ajude a resolver o problema.

int n1=.....

int n2=.....

M1[i]=iMA(NULL,0,n1,n2,MODE_SMA,PRICE_CLOSE,i);

Eu mostro os valores de n1 e n2 no comentário, os valores estão corretos, mas o mouse não é desenhado corretamente, não em todo o gráfico. Mas se eu digitar os valores de n1 e n2 à mão em vez destas variáveis, tudo é desenhado como deveria ser. Eu não entendo como é possível quando os valores das variáveis estão corretos? Como posso fazer com que o gráfico seja desenhado com um deslocamento para a direita? Agora é elaborado apenas até a barra zero, ou seja, a atual.

 
Alexandr24:

Por favor, ajude a resolver o problema.

int n1=.....

int n2=.....

M1[i]=iMA(NULL,0,n1,n2,MODE_SMA,PRICE_CLOSE,i);

Eu mostro os valores de n1 e n2 no comentário, os valores estão corretos, mas o mouse não é desenhado corretamente, não em todo o gráfico. Mas se eu digitar os valores de n1 e n2 à mão em vez destas variáveis, tudo é desenhado como deveria ser. Eu não entendo como é possível quando os valores das variáveis estão corretos? Como posso fazer com que o gráfico seja desenhado com um deslocamento para a direita? Agora é elaborado apenas até a barra zero, ou seja, a atual.

Se n1 não é igual ao valor do TF, então eu entendo porque não é desenhado corretamente. Mas uma mudança para a direita fará o n2 plus! Verificado!
 
borilunad:
Se n1 não é igual ao valor TF, então eu entendo porque ele não é desenhado corretamente. E a mudança para a direita fará n2 com menos.

Não entendo o que TF tem a ver com isso, n1 é o período médio para o cálculo do indicador. Tenho uma boa idéia do que fazer com ele, não tenho certeza do que fazer com ele, mas não tenho certeza do que fazer com ele.

UPD. eu coloco 0 em vez de n2 e o turno fica bem, mas n1 é um pouco esquisito :(

 
double  iMA(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период - n1    
   int          ma_shift,         // сдвиг средней - n2
   int          ma_method,        // метод усреднения
   int          applied_price,    // тип цены
   int          shift             // сдвиг
   );

Isso mesmo! Fui eu que errei, mas por que não funcionaria se você está fazendo certo?!

 
borilunad:

Isso mesmo! Sou eu quem está errado, mas por que não pode funcionar se você está fazendo certo?!

Sim, eu também estou intrigado com este paradoxo. Se eu reiniciar o terminal, o vagão é entregue como deveria ser, mas reiniciar sempre é inconveniente.

UPD Eu resolvi o problema pressionando o botão direito e selecionando "Atualizar" no menu, mas se eu pressionar compilar no código, o desenho fica bagunçado... Mas isso é uma bagunça, eu vou apenas atualizar :))

 
Alexandr24:

Também estou intrigado com este paradoxo. Se eu reiniciar o terminal, então o vagão é puxado como deve ser, mas é inconveniente reiniciá-lo toda vez.

UPD O problema foi resolvido clicando com o botão direito do mouse e selecionando "Atualizar" no menu, mas se eu pressionar compilar no código, o vagão é desenhado incorretamente... mas isso é um problema menor, eu vou apenas atualizar :))

Mostre-me o código, não apenas fragmentos
 

Eu mesmo o classifiquei, obrigado por sua contribuição :)

 
Saudações, TODOS!
Procurei no fórum e na Internet - não consegui encontrá-lo. É por isso que tenho uma pergunta para você:

1. Um EA abre (baseado no cruzamento com MA) múltiplas (3) ordens de mercado pelo mesmo preço (por exemplo, COMPRAR a 1.1180).

Antes de o MA ser cruzado, as ordens eram ordens de Buy Stop.

2. Então o Consultor Especialista deve definir essas três ordens Takeprofit para níveis diferentes (elas são determinadas somente quando cruzam o MA, de acordo com o indicador padrão Fibo)

Vamos supor que estes níveis são os seguintes:
Ur1 = 1.1200
Ur2 = 1.1220
Ur3 = 1.1240

E agora uma pergunta:
Como estabelecer esses níveis definidos para as ordens abertas?

Encontrei tal construção no fórum (veja abaixo), mas não consigo pensar em mais nada. Se eu não tenho certeza do que estou procurando, prefiro ter algumas dicas de como fazer isso.
Preciso de outro contador? Mas como? Ou terei que usar arrays, majicies, ou... ????

double Ur1 = 1.1200
double Ur2 = 1.1220  
double Ur3 = 1.1240
for(int i=OrdersTotal()-1;i>=0;i--) 
{
   if(OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES)==false) continue;
   if(OrderSymbol()!=Symbol()) continue;
      if(OrderType()!=0) continue;
                   
   // вот тут мы можем работать с нашим ордером
   
   if (OrderTicket() = ???? );
 
 bool mod_Buy1 = OrderModify ( OrderTicket(???),OrderOpenPrice (), NULL,Ur1,0,clrNONE);
 bool mod_Buy2 = OrderModify ( OrderTicket(???),OrderOpenPrice (), NULL,Ur2,0,clrNONE);
 bool mod_Buy3 = OrderModify (OrderTicket(???),OrderOpenPrice (), NULL,Ur3,0,clrNONE);


}  

 
vadimvborisov:
Como você coloca as Três Ordens em aberto nestes níveis determinados?

1. O que o impede de definir os TPs apropriados para os pedidos à medida que são abertos?
2. O que é este mod_Buy1/2/3 ? - Você entende o propósito do ciclo acima?