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

 

Você pode me dizer se eu vi uma subjanela indicadora desenhada neste estilo em algum lugar no kodobase?

Não consigo encontrá-lo


 
makssub #:

Boa tarde. Eu li sobre o vail. Não posso acrescentar ou subtrair.
Não posso dizer nada sobre gestão de dinheiro, ainda não experimentei.
Anexei a versão mais recente. Mas eu já estraguei tudo para mim)
Order1(2) the selected order's profit
Order1(3) the selected order's lot

Eu não consegui entender o código.

Vou tentar explicar. Espero que você conheça as passagens dos pedidos necessários, isso facilita muito as coisas. As condições. Há uma ordem de lucro com um lucro maior que zero, há uma ordem de perda com um lucro menor que zero e maior que o lucro, e há uma condição para o fechamento parcial de uma ordem de perda.

Em geral, se as ordens são dirigidas de forma diferente, você pode fechar através do OrderCloseBy sem pensar duas vezes. A ordem de perda menor será fechada igual à ordem de lucro menor. Precisamos apenas de 2 bilhetes.

Podemos tornar tudo mais complicado, obter OrderProfit() (isto é dinheiro) e OrderLots() (este é o volume em lotes) de ambas as encomendas. Calcule a relação lucro/perda e feche a ordem lucrativa e esta parte em lotes da ordem perdida. Antes de obter os lucros e lotes do pedido, você deve primeiro selecionar a OrderSelect.

// ticket1 тикет прибыльного ордера, ticket2 убыточного

bool sel1=OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES);
double profit1=OrderProfit();
double  Lts1=OrderLots();
double price1=0; if(OrderType()==0)price1=Bid; else price1=Ask;

bool sel2=OrderSelect(ticket2,SELECT_BY_TICKET,MODE_TRADES);
double profit2=OrderProfit();                     // profit1 < profit2 можно условием впереди поставить
double  Lts2=OrderLots();
double price2=0; if(OrderType()==0)price2=Bid; else price2=Ask;

double ratio=fabs(profit1/profit2); // или если ratio<1, и берем модуль, у нас один профит меньше нуля
double lotsl=Lts2*ratio;

 Alert("Попытка закрыть прибыльный ордер тикет1 ",ticket1,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
 bool    Ans1=OrderClose(ticket1,Lts1,price1,2);      // Закрытие прибыльного ордера
         if(Ans1==true) // Получилось :)
         Alert("Закрыт ордер тикет1 ",ticket1,". профит1 ",profit1); 
else Alert(" Ошибка при закрытии ордера  тикет1",ticket1," Код ошибки ",GetLastError());

Alert("Попытка закрыть часть ордера тикет2 ",ticket2,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
bool     Ans2=OrderClose(ticket2,lotsl,price2,2);      // Закрытие убыточного ордера частично
         if(Ans2==true) // Получилось :)
         Alert("Закрыт частично ордер тикет2 ",ticket2,". профит2 ",profit2); 
else Alert(" Ошибка при закрытии ордера  тикет2",ticket2," Код ошибки ",GetLastError());

 

  
 


Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
Vitaly Muzichenko #:

Você pode me dizer se eu vi uma subjanela indicadora desenhada neste estilo em algum lugar no kodobase?

Não consigo encontrá-lo.


Ver indicadores por Scriptor

Scriptor
Scriptor
  • 2019.02.10
  • www.mql5.com
Профиль трейдера
 
Artyom Trishkin #:

Veja os indicadores do Scriptor.

Obrigado, encontrei-o, mas é um pouco diferente, apenas em uma fila

 
Vitaly Muzichenko #:

Obrigado, encontrei, mas é um pouco diferente, é apenas para uma fila.

Acho que há várias filas também.

 
Artyom Trishkin #:

Acho que também há algumas filas lá dentro.

Existem mais de 1500 códigos, eu devo ter perdido, infelizmente

 
Vitaly Muzichenko #:

Obrigado, encontrei-o, mas é um pouco diferente, apenas em uma fila.

Vitaly, você me surpreende. Todos esses indicadores são baseados na construção do DRAW_ARROW com o código apropriado. Em seu desenho, os quadrados são o código 167

      ObjectSetInteger(0, up_arrow, OBJPROP_ARROWCODE, 167);    // установим код стрелки 

E o nível da série é estabelecido como o gato ou gato de Artyom deseja. Pode ser em números inteiros ou em décimos.

Comece e pergunte sobre o que não funciona.

 
Vitaly Muzichenko #:

Você pode me dizer se eu vi uma subjanela indicadora desenhada neste estilo em algum lugar no kodobase?

Não consigo encontrá-lo


DRAW_ARROW não é bom ?

8 tampões se desenho com uma cor, 16 se desenho com duas.

ou DRAW_COLOR_LINE com linhas mais grossas.

O sentido é que as linhas estão sempre no mesmo nível (primeiro 1 segundo 2 etc.), apenas a cor muda.

 
Alexey Viktorov #:

Vitaly, você me surpreende. Todos esses indicadores são baseados no desenho DRAW_ARROW com um código correspondente. Em sua foto os quadrados são código 167

E o nível da fila é definido como o gato ou gato de Artyom deseja. Pode ser em números inteiros ou em décimos.

Comece e pergunte sobre o que não funciona.

Eu não entendo o princípio de indentação por baixo para que seja igual em várias filas

É aí que não posso começar

 
Vitaly Muzichenko #:

Não entendo o princípio de indentação a partir do fundo para que seja uniformemente espaçado em várias linhas

É por aqui que não posso começar.

Comece fazendo o valor do nível inferior 1, o valor do segundo nível 2 e assim por diante. Então você pode diminuí-lo. Se for para mql4, então você precisa de 2 buffers por nível se você tiver apenas 2 cores. Para mql5 devem ser 2 buffers por nível, dados e cor. A verticalidade é ajustada pela altura da janela indicadora.

Razão: