Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 257

 
Olá novamente! Ajuda com esta trivialidade para você, porque não consigo entender....

Quero fazer o seguinte!

Ao abrir o primeiro comércio ao preço, por exemplo 1,23455, quero que o segundo comércio seja aberto quando o preço for para 1,23415

Código PHP:
double positionTPask=NormalizeDouble(Ask*Point,Digits);
double lastTPask1=NormalizeDouble(Ask-40*Point,Dígitos);

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDuplo(Pergunte+takeprofit*Ponto,Dígitos);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)===-1)Print(GetLastError());

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Ponto,Dígitos);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)===-1) Print(GetLastError());
}}}

E eu abro 2 pedidos por um preço de uma só vez.
Isto é correto? Confira...
 

sviter-pro:
Здраствуйте еще раз! Помогите с этой банальностью для вас, ато я разобраться не могу....

Хочу сделать следующее! 

Когда открывается первая сделка по цене к примеру 1.23455, то хочу что бы вторая сделка открывалась когда цена пойдет на 1.23415

double positionTPask = NormalizeDouble(Ask * Point, Digits);
double lastTPask1 = NormalizeDouble(Ask - 40 * Point, Digits);

if (RSI0 < RSIDownLevel && RSIDownLevel <= RSI1){
      TP  = NormalizeDouble(Ask + takeprofit * Point,Digits); 
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)==-1) Print(GetLastError());
      
   if (positionTPask1 > lastTPask1){
      if (takeprofit!=0) TPm  = NormalizeDouble(Ask + takeprofit * Point, Digits); 
      if (OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), slippage, 0, TPm, NULL, Magic)==-1) Print(GetLastError());
      }}  
E tenho 2 pedidos abertos de uma só vez pelo mesmo preço.

É bem feito? Você poderia olhar para isto...

Na primeira linha, eu vi uma coisa estranha. Eu não procurei mais.

Para que serve isto?

double positionTPask = NormalizeDouble(Ask * Point, Digits);

Em uma calculadora, multiplique Ask por Point

Eu tenho uma idéia muito boa de como colar corretamente o código.

 
sviter-pro:
Olá novamente! Ajuda com esta trivialidade para você, porque não consigo entender....

Eu quero fazer o seguinte!

Quando meu primeiro pedido abrir em 1.23455, quero que meu segundo pedido abra quando o preço for para 1.23415

Código PHP:
double positionTPask=NormalizeDouble(Ask*Point,Digits);
double lastTPask1=NormalizeDouble(Ask-40*Point,Dígitos);

if (
RSI0<RSIDownLevel&&RSIDownLevel<=RSI1){
TP=NormalizeDuplo(Pergunte+takeprofit*Ponto,Dígitos);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TP,NULL,Magic)===-1)Print(GetLastError());

if (
positionTPask1>lastTPask1){
if (
takeprofit!=0)TPm=NormalizeDouble(Ask+takeprofit*Ponto,Dígitos);
if (
OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,TPm,NULL,Magic)===-1) Print(GetLastError());
}}}

Eu abri 2 pedidos por um preço ...
Isto é correto? Por favor, verifique...
Você não deve dançar do Ask-40*Point, mas do preço na abertura de 1 posição-40*Point.
 

Não trabalhei muito com indicadores, então esta pode ser uma pergunta simples, como desabilitar a exibição do buffer gráfico najanela de dados? Eu quero remover os amortecedores 3 e 4, aqui está o código:

#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property  indicator_color1 Black
#property  indicator_color2 Yellow
#property  indicator_color3 Black
#property  indicator_color4 Black

//---- input parameters
input int RSIPeriod=14;
input int Levl=50;
input ENUM_TIMEFRAMES TF=PERIOD_CURRENT;
//---- buffers
double RSIBuffer[];
double MABuffer[];
double PosBuffer[];
double NegBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(4);
   SetIndexBuffer(0,RSIBuffer);
   SetIndexBuffer(1,MABuffer);
   SetIndexBuffer(2,PosBuffer);
   SetIndexBuffer(3,NegBuffer);
   
//---- indicator line
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
//----
//---- name for DataWindow and indicator subwindow label
   short_name="RSI("+IntegerToString(RSIPeriod,0,' ')+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexLabel(1,"Levl"+"_"+IntegerToString(Levl,0,' ')+" Price");
   SetIndexLabel(2,"U");
   SetIndexLabel(3,"D");
   

   return(0);
  }

Isto é RSI modificado - buffers são necessários lá, porque o cálculo é baseado em dados passados e eu não quero mudar o tamanho do buffer toda vez (se não for gráfico) e adicionar novos dados lá, então os buffers gráficos são convenientes para meus propósitos.

 
Alekseu Fedotov:
Você não deve dançar do Ask-40*Point, mas do preço de abertura1 posição-40*Point.

Então leia o preço de abertura e dance....

 
Aleksey Vyazmikin:

Não trabalhei muito com indicadores, então esta pode ser uma pergunta simples, como desabilitar a exibição do buffer gráfico najanela de dados? Eu quero remover os amortecedores 3 e 4, aqui está o código:

Este é um RSI modificado - buffers são necessários lá, porque o cálculo é baseado em dados passados e eu não quero mudar o tamanho do buffer toda vez (se não for gráfico) e adicionar novos dados lá, então os buffers gráficos são convenientes para meus propósitos.


Não sei se o entendi corretamente.

Experimente assim:#property indicator_buffers 2

#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property  indicator_color1 Black
#property  indicator_color2 Yellow
 
Alexander Voronkov:

Eu não sei se acertei.

Experimente assim:#property indicator_buffers 2


Parece que você está certo! E, pela bondade do meu coração, pensei que teria que ser declarado se um buffer gráfico fosse usado para os cálculos.

Obrigado!
 
Aleksey Vyazmikin: como desativar a exibição do buffer gráfico naJanela de Dados? Eu quero remover os amortecedores 3 e 4, aqui está o código:

para desativar a exibição na janela de Dados, faça o seguinte

SetIndexLabel(2,NULL);  // Запрет в окно Данные буфера 3
SetIndexLabel(3,NULL);  // Запрет в окно Данные буфера 4
 
STARIJ:

Para desativar a saída na janela de dados, faça o seguinte


Obrigado. Este movimento permitirá ver os buffers proibidos nos dados da janela através do iCustom?

 
Aleksey Vyazmikin: Obrigado. Este movimento permitirá que você veja os buffers que não são permitidos na janela de dados através do iCustom?

iCustom permite que você veja apenas o que está na janela de dados. O penúltimo parâmetro da função é exatamente o número do buffer visível na janela de dados

Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
  • www.metatrader5.com
Графики в торговой платформе отображают изменение котировок финансовых инструментов во времени. Они необходимы для проведения технического анализа...
Razão: