Talvez queira que os terminais com os gráficos enviem a marcação para um servidor web e que os outros a recebam e a exibam no gráfico. Não é uma tarefa fácil, mas é exequível
Como o posso fazer ou o que devo ler para aprender a fazê-lo? A marcação é automaticamente enviada e aceite por outros utilizadores ou precisa de ser carregada como modelos de cada vez?
Илья: Como faço isto ou o que devo ler para saber como isto pode ser feito? A marcação é automaticamente enviada e aceite por outros utilizadores ou precisa de ser carregada separadamente de cada vez como modelos?
Penso que é necessário um pequeno botão, e depois de ter feito uma marcação, carregue nele e envie-o. Nos receptores é o mesmo, se quiser obter uma marcação, então prima o segundo botão. Total de 2 botões no gráfico, e não há custo de recursos para o monitorizar constantemente
////
int CalculateBUYPositions()
{
int total=0;
//ENUM_ORDER_TYPE order_type=ORDER_TYPE_BUY;for(int i=PositionsTotal()-1;i>=0;i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
if(m_position.PositionType()==POSITION_TYPE_BUY)
{
total++;
}
//---return(total);
}
//
As ordens de limite devem ser estabelecidas se houver apenas uma posição
A questão não é clara. As suas ordens e posições são confusas.
O código que citou, "CalculateBUYPositions()" calcula o número de PONTOS DE COMPRA.
Reescreva a sua pergunta.
Em forex, se eu tiver uma posição, coloco uma ordem limite e as ordens limite são activadas, o número de posições aumenta e a EA não coloca mais Limites.
Em forex, se houver um limite de posição e todas as ordens de limite forem activadas, o número de posições aumenta e não são colocadas mais ordens de limite. Eu preciso, uma alternativa igual à condição, -- "se houver uma posição" CalculateBUYPositions()==1
Em forex se houver uma posição que eu ponha uma ordem de limite, as ordens de limite são activadas o número de posições aumenta, não são colocados mais limitadores pela EA.
No forex, se houver uma posição, a ordem limite é activada, o número de posições aumenta e não são colocadas mais ordens limite pela EA. Eu preciso, uma alternativa igual à condição, -- "se houver uma posição" CalculateBUYPositions()==1
Não, não é. Para esclarecer, já existe uma posição sobre o símbolo actual:
Nas contas de cobertura, assim que a ordem pendente for accionada, haverá MAIS UMA posição
sobre contas de compensação após o accionamento da ordem pendente
se a ordem pendente era para o símbolo actual então:
a posição existente irá aumentar
uma posição existente será diminuída
uma posição existente irá rolar
a posição existente irá inverter-se
Para esclarecer a sua pergunta: que tipo de conta procura e O QUE precisa de localizar.
As ordens de limite devem ser estabelecidas se houver apenas uma posição
Como pode esta condição ser alterada?
Isto pode ser determinado pelo número de negócios ou pelo número de ordens envolvidas na abertura e modificação de uma posição. Basta seleccionar o histórico para o bilhete da posição e verificar o número. Se houver uma variante de que a posição adicionou volume e depois foi parcialmente fechada por uma ordem de limite oposta ou de outra forma, teremos de percorrer as negociações e contar os tipos de negócios como DEAL_ENTRY_IN e/ou outros tipos.
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
elseif(orderType==ORDER_TYPE_BUY_STOP)
{
request.type =ORDER_TYPE_BUY_STOP; // тип ордера
price =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point; // цена для открытия
request.price=NormalizeDouble(price,digits); // нормализованная цена открытия
}
elseif(orderType==ORDER_TYPE_SELL_STOP)
{
request.type =ORDER_TYPE_SELL_STOP; // тип ордера
price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point; // цена для открытия
request.price =NormalizeDouble(price,digits); // нормализованная цена открытия
}
Em ambos os casos Ask - parece um erro. No segundo caso para SELL_STOP seria melhor usar Bid ????
Talvez queira que os terminais com os gráficos enviem a marcação para um servidor web e que os outros a recebam e a exibam no gráfico. Não é uma tarefa fácil, mas é exequível
Como faço isto ou o que devo ler para saber como isto pode ser feito? A marcação é automaticamente enviada e aceite por outros utilizadores ou precisa de ser carregada separadamente de cada vez como modelos?
Penso que é necessário um pequeno botão, e depois de ter feito uma marcação, carregue nele e envie-o. Nos receptores é o mesmo, se quiser obter uma marcação, então prima o segundo botão. Total de 2 botões no gráfico, e não há custo de recursos para o monitorizar constantemente
Como posso limitar a colocação de ordens se existe sempre uma posição no mercado depois de activar as ordens de limite?
em forex, eu costumava verificar o número de ordens - posições
if( CalculateBUYPositions()==1)As ordens de limite devem ser estabelecidas se houver apenas uma posição
Como é que posso substituir esta condição?
Como posso limitar a colocação de ordens se existe sempre uma posição no mercado depois de activar as ordens de limite?
em forex, fiz uma verificação sobre o número de ordens - posições
As ordens de limite devem ser estabelecidas se houver apenas uma posição
Como podemos substituir esta condição?
A questão não é clara. Está a confundir as ordens e as posições.
O código que citou, "CalculateBUYPositions()" calcula o número de posições de COMPRA.
Por favor, reformule a sua pergunta.
A questão não é clara. As suas ordens e posições são confusas.
O código que citou, "CalculateBUYPositions()" calcula o número de PONTOS DE COMPRA.
Reescreva a sua pergunta.
Em forex, se eu tiver uma posição, coloco uma ordem limite e as ordens limite são activadas, o número de posições aumenta e a EA não coloca mais Limites.
Em forex, se houver um limite de posição e todas as ordens de limite forem activadas, o número de posições aumenta e não são colocadas mais ordens de limite. Eu preciso, uma alternativa igual à condição, -- "se houver uma posição" CalculateBUYPositions()==1
Em forex se houver uma posição que eu ponha uma ordem de limite, as ordens de limite são activadas o número de posições aumenta, não são colocados mais limitadores pela EA.
No forex, se houver uma posição, a ordem limite é activada, o número de posições aumenta e não são colocadas mais ordens limite pela EA. Eu preciso, uma alternativa igual à condição, -- "se houver uma posição" CalculateBUYPositions()==1
Não, não é. Para esclarecer, já existe uma posição sobre o símbolo actual:
Para esclarecer a sua pergunta: que tipo de conta procura e O QUE precisa de localizar.
Como posso limitar a colocação de ordens se existe sempre uma posição no mercado depois de activar as ordens de limite?
em forex, eu costumava verificar o número de ordens - posições
As ordens de limite devem ser estabelecidas se houver apenas uma posição
Como pode esta condição ser alterada?
Isto pode ser determinado pelo número de negócios ou pelo número de ordens envolvidas na abertura e modificação de uma posição. Basta seleccionar o histórico para o bilhete da posição e verificar o número. Se houver uma variante de que a posição adicionou volume e depois foi parcialmente fechada por uma ordem de limite oposta ou de outra forma, teremos de percorrer as negociações e contar os tipos de negócios como DEAL_ENTRY_IN e/ou outros tipos.
Segundo dia a refazer o robô de MT4 a MT5. Estabelecimento de encomendas pendentes - funciona. Ajuda na MqlTradeRequest:
Em ambos os casos Ask - parece um erro. No segundo caso para SELL_STOP seria melhor usar Bid ????
Segundo dia a refazer o robô de MT4 a MT5. Estabelecimento de encomendas pendentes - funciona. Ajuda na MqlTradeRequest:
Em ambos os casos Ask - parece um erro. No segundo caso, Bid seria melhor para SELL_STOP.
SELL abre por BID e fecha por ASK