[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 439

 
peshihod:


Eu entendo que uma ordem pendente e uma ordem em aberto são ordens diferentes. E se a ordem pendente for aberta, então a tarefa é reduzida à ordem inicial, à ordem aberta. Se eu entendi corretamente, está ficando muito complicado.

Quais são as tarefas? Talvez, tudo possa ser feito de uma maneira mais simples?

Entendo que uma ordem pendente e uma ordem em aberto são ordens diferentes. -------------- Sim (talvez) Talvez não. O principal é que o roteiro deve acionar na abertura desta ordem pendente, ou seja, não quando ela é colocada, mas quando ela é aberta.

Preciso de ajuda para escrever o roteiro, por favor me ajudem, profissionais, especialistas e boas pessoas, sugiram mudanças se você quiser que funcione.


Se eu tiver uma ordem pendente, seu preço chega até ela e o robô também deve reagir. Quero que funcione em tais ordens também.

Bem, estou testando agora e funciona. Por que não funcionou no primeiro teste hmmm... Talvez por causa do reinício do computador ...Mas depois do reinício planejado, o robô sorriu (funcionou).

Mais um detalhe . Este roteiro não funcionará em cartas históricas, e por quê?

//+------------------------------------------------------------------+
//| Order_act.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
int Order_array[200];
int Total=0;
int j,pos,count,order_tick,type;
bool found;

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
// создаем список ордеров (туда входят и открытые, и отложенные)
Total=OrdersTotal();

for(pos=0;pos<Total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{ Order_array[pos]=OrderTicket();}
}

// проверочная часть скрипта
int i=0;
while ( !IsStopped() )
{
count=OrdersTotal();
for(pos=0;pos<count;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
found=false;
order_tick=OrderTicket();

for (j=0;j<Total;j++)
{

if (order_tick==Order_array[j]) {found=true;}
}
if (!found)
{
type=OrderType();

if ((type==OP_BUY) || (type==OP_SELL))
{
Total++; // в случае,если есть новый открытый
Order_array[Total-1]=order_tick; //ордер - добавляем в список

Alert("Новый открытый ордер"); // и делаем с ним что хотим

}
}
}
// если планируется, что скрипт будет работать долго или открываемся часто
// удаляем из списка все закрытые ордера чтобы не было переполнения.
// А чтобы работало быстрее, количество записей можно уменьшить (лишь бы не превысило
// максимально возможного числа открытых и отложенных поз.
if (Total>190)
{
for (j=0;j<Total;j++)
{
if(OrderSelect(Order_array[j],SELECT_BY_TICKET)==true)
{
if (OrderCloseTime()!=0)
{
Alert("нашли закрытый в списке и удалили");
for (i=j+1;i<Total;i++) {Order_array[j]=Order_array[i];}
Total--;
}
}
}
}
Sleep(100);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

Его написал RAVen_ Спасибо этому профессионалу .

 

Prezados Profissionais,

Como posso ensinar um EA a ler informações de outra janela, onde outro EA está trabalhando com o mesmo par de moedas?

 
demlin:

Prezados Profissionais,

Como posso ensinar um EA a ler informações de outra janela, onde outro EA está trabalhando com o mesmo par de moedas?


Tentar ir por outro caminho, ou seja, trocar valores entre EAs usando variáveis globais... Eu mesmo não os usei, não conheço os detalhes, procuro por eles e vejo como são usados...
 
demlin:

Prezados Profissionais,

Como posso ensinar uma EA a ler informações de outra janela onde outra EA está trabalhando com o mesmo par de moedas?

Existe também uma biblioteca desse tipo.
 
semiromid:

Eu entendo que uma ordem pendente e uma ordem em aberto são ordens diferentes. -------------- Sim (talvez) Talvez não. O principal é que o roteiro deve funcionar quando a ordem pendente for aberta, ou seja, não quando for colocada, mas quando for aberta.


Isto é escavar um par de árvores com uma escavadeira! Qual é o objetivo de separar as ordens? O preço é o mesmo para todos. Os pedidos são sempre processados em conjunto, a granel, pela mesma melhor variante.

Isto é, não importa quem faz os pedidos, é importante quais parâmetros cada pedido individual tem. Você está procurando por um vazio.

Se tivermos que executar a tarefa1 e a tarefa2, então temos que verificar cada ordem, se a tarefa necessária foi executada para ela ou não. E não há necessidade de verificar se esta ordem é aberta agora mesmo, ou pouco antes, ou está prestes a ser aberta.

 
peshihod:


Está cavando um par de árvores com uma escavadeira! Qual é o objetivo de separar as ordens? O preço é o mesmo para todos. Os pedidos são sempre processados em conjunto, a granel, na melhor opção.

Isto é, não importa quem faz as encomendas, o que importa são os parâmetros de cada encomenda individual. Você está procurando por um vazio.

Se tivermos que executar a tarefa1 e a tarefa2, então temos que verificar cada ordem, se a tarefa necessária foi executada para ela ou não. E não há necessidade de verificar se esta ordem é aberta agora mesmo, ou apenas um pouco mais cedo, ou está prestes a abrir.

Está escavando um par de árvores com uma escavadeira! ----------- Que opção mais simples existe?

Qual é o objetivo de dividir as ordens? -------------- Eu preciso dividir meus pedidos em bóia e vender. Ou você quer dizer o processamento de pedidos? Ao menos me dê uma dica de como tornar o roteiro mais simples ?

Stano, testando-o agora, tudo funciona. Por que não funcionou no primeiro teste hmm... Talvez porque houve um reinício do computador ...Mas depois de um reinício programado, o robô estava sorrindo (funcionando). Quais são as opções sobre o porquê de não ter funcionado na época? Talvez um mau funcionamento semelhante aconteça no futuro.

 

Bom dia para todos.

Eu tenho esta pergunta. Suponha que haja um indicador XXXXXXX (o nome não importa)

Infelizmente, eu não tenho o código fonte do indicador. Portanto, eu não entendo em que se baseia)

Posso desenvolver um Expert Advisor baseado em sinais indicadores XXXXXXXXX para abrir pedidos de Venda e Compra?

Aqui está um exemplo em uma captura de tela

 
FreeSerfer:

Bom dia a todos.

Eu tenho esta pergunta. Suponha que haja um indicador XXXXXXX (o nome não importa)

Infelizmente, eu não tenho o código fonte do indicador. Portanto, eu não entendo em que se baseia)

Posso desenvolver um Expert Advisor baseado em sinais indicadores XXXXXXXXX para abrir pedidos de Venda e Compra?

Aqui está um exemplo em uma captura de tela


Sim, talvez. Posso até adivinhar que tipo de peru... :-)))
 

Por favor, informe. Como posso fazer a compra deste robô em 20 segundos?

Não quero que ele compre em 20 segundos, então o preço vale mais 20 segundos, então ele só ganha em 40 segundos.

int start()
{

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point, "Order #", 0); // abrir um pedido de compra
Sleep(20000); // Timer por 20 segundos

return(0);
}

 
Um roteiro em loop é necessário para funcionar por tempo, não por carrapatos.