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);
elseAlert(" Ошибка при закрытии ордера тикет1",ticket1," Код ошибки ",GetLastError());
Alert("Попытка закрыть часть ордера тикет2 ",ticket2,". Ожидание ответа..");
RefreshRates(); // Обновление данныхbool Ans2=OrderClose(ticket2,lotsl,price2,2); // Закрытие убыточного ордера частичноif(Ans2==true) // Получилось :)Alert("Закрыт частично ордер тикет2 ",ticket2,". профит2 ",profit2);
elseAlert(" Ошибка при закрытии ордера тикет2",ticket2," Код ошибки ",GetLastError());
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.
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
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.
Você pode me dizer se eu vi uma subjanela indicadora desenhada neste estilo em algum lugar no kodobase?
Não consigo encontrá-lo
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.
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
Veja os indicadores do Scriptor.
Obrigado, encontrei-o, mas é um pouco diferente, apenas em uma fila
Obrigado, encontrei, mas é um pouco diferente, é apenas para uma fila.
Acho que há várias filas também.
Acho que também há algumas filas lá dentro.
Existem mais de 1500 códigos, eu devo ter perdido, infelizmente
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
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.
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.
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
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.