[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 841

 
etroplus:

Por favor, avise!

Existe alguma função que devolva o valor de lucro de uma posição aberta em pips?

(Bid - OrderOpenPrice())/Point;    //для ордеров BUY
(OrderOpenPrice() - Ask)/Point;    //для ордеров SELL
 
webgreck:

verificar se houve uma mudança de data e utilizar as funções

MarketInfo(Symbol(),MODE_SWAPSHORT);
MarketInfo(Symbol(),MODE_SWAPLONG);
 
alsu:

verificar se a data foi alterada e utilizar as funções


Como você pode controlar a data? Ela não muda. Veja a imagem da tela.

 
webgreck:


Eu tenho muitos pedidos que precisam ser trabalhados de forma diferente que tipo de objetivo fixo e estabelecer paridade, mas não posso lidar com esta tarefa porque depois que o negócio é fechado e aberto por causa da troca, ele muda o número do bilhete, então eu não posso usar o número do bilhete para identificar a posição para saber o que fazer com ele.

Favor aconselhar como lidar com a troca e como identificar uma troca e saber se já fixei ou não paridade sobre ela, etc.


Nesses casos, o "número mágico do pedido" pode ser usado ativamente.
 
abolk:

Nesses casos, a Ordem do Número Mágico pode ser usada ativamente.

Eu já uso o número mágico para identificar os três tipos de sinais ... Se eu já coloquei paridade para uma pose, provavelmente deveria pensar em uma maneira de usar o número mágico para determinar se eu já coloquei paridade. Por exemplo, podemos dar um valor de número mágico a um pedido, mas tanto quanto sei, não podemos editar o número mágico ... ou eu estou errado? só podemos dar um valor ao definir a ordem, mas o que podemos escrever no número mágico, assim poderemos verificar se a paridade já foi definida para a ordem?
 
webgreck:

Já o utilizo para identificar os três tipos de sinais ... Se seu algoritmo está intimamente relacionado à identificação do pedido, então eu preciso conhecer seu algoritmo para me ajudar neste caso.

Se seu algoritmo está intimamente relacionado à identificação do pedido, então devemos conhecer seu algoritmo para ajudá-lo neste caso.
 
abolk:

Se seu algoritmo está intimamente ligado à identificação de pedidos, então para ajudá-lo neste caso, precisamos conhecer seu algoritmo.


Temia esta pergunta. O sistema é bastante complicado e difícil de descrever em duas palavras. Eu também não quero postar o código, pois há milhares de linhas de código e ninguém vai entender ou se preocupar com elas...

Pensei que existiam alguns métodos flexíveis comuns para implementar a identificação de pedidos ... O número mágico é basicamente para que serve, mas não pode ser editado para lembrar que a ordem já foi feita isto ou aquilo ...

Talvez ainda seja possível editar um número mágico?

 
webgreck:


Como você controla a data? Ela não muda. Veja a imagem da tela.

como não muda? em sua imagem de tela era 13 de janeiro, às 00:00 do 14º dia swap floz - swap aberto
 
webgreck:


Sim, esta é a pergunta que eu temia) porque o algoritmo não é simples ... o sistema é bastante complexo e não pode ser descrito em 2 palavras. E colocar o código também não faz sentido, pois há milhares de linhas de código e ninguém vai entender e mergulhar nelas ...

Pensei que existem alguns truques flexíveis comuns para implementar a identificação de pedidos ... Temos um número mágico para este fim, mas não podemos editá-lo para lembrar o que já foi feito com esta ordem ...

Talvez seja possível editar o número mágico de um pedido?


E você converte o tempo de abertura em int - aí você tem dois magiks para uma posição. Se você não definiu paridade, há apenas o magik. Se você já definiu paridade, a variável responsável pela presença da paridade definida será igual ao tempo de abertura da posição, que é denotado por int e a posição terá um número mágico... :)
Dance a partir daí...
 

Hi!

Não consigo entender porque as ordens abertas não são modificadas, a condição de modificação é um lucro acima de 5 pips.

//+------------------------------------------------------------------+
|| news trade.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2010, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"


bool externo In_BUYSTOP=verdadeiro;
extern intProfit_buy=100;
externo int StopLoss_buy=5;
duplo externo Lots_buy=0,01;
//+------------------------------------------------------------------+
bool externo In_SELLSTOP =true;
Exterior inttern TakeProfit_sell=100;
externo int StopLoss_sell =5;
venda dupla externa Lotes_sell =0,01;
nível de lucro int externo = 25; // - nível de lucro em pontos, que é necessário atingir para transferir sua parada para o nível de Breakeven.
NívelWLoss int externo = 1; // - Nível de equilíbrio em pontos, para o qual a posição de parada será movida após seu lucro atingir o nível LevelProfit em pontos.

//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
int profitbuy=((Bid - OrderOpenPrice())/Point); // COMPRAR
int profitell=((OrderOpenPrice()- Ask)/Point); // SELL
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
//----
{
int ticket;
if (Licitação >iHigh(NULL,PERÍODO_D1,1))
{
if(OrdensTotal() < 1)
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots_sell,iHigh(NULL,PERIOD_D1,1),3,iHigh(NULL,PERIOD_D1,1)+StopLoss_sell*Point,iHigh(NULL,PERIOD_D1,1)-TakeProfit_sell*Point,Hour() == 21 && Minute() == 59);
if(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==verdadeiro)
{
int profitell=((OrderOpenPrice()- Ask)/Point);
se (profitell>5)
ticket=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,Blue);
retorno(0);
}
}
se (Pergunte <iLow(NULL,PERÍODO_D1,1))
{
if(OrdensTotal() < 1)
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots_buy,iLow(NULL,PERIOD_D1,1),3,iLow(NULL,PERIOD_D1,1)-StopLoss_buy*Point,iLow(NULL,PERIOD_D1,1)+TakeProfit_buy*Point,Hour() == 21 && Minute() == 59);
if(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==verdadeiro)
{
int profitbuy=((Bid - OrderOpenPrice())/Point);
se (profitbuy>5)
int stopmodify=OrderOpenPrice();
OrderModify(OrderTicket(),OrderOpenPrice(),stopmodify,OrderTakeProfit(),0,Blue);
retorno(0);
}
}
retorno(0);
}
//+------------------------------------------------------------------+
Razão: