Você pode percorrer a história desde o início ou desde o final. Não há diferença. De qualquer forma, a função procura o pedido com a última hora de fechamento. E se você quiser apagar ou fechar pedidos, devemos pesquisar a partir do final da lista. Caso contrário, o laço saltará os pedidos.
Neste caso, não há diferença. O ciclo de OrersTotal a 0 é obrigatório somente no caso de fechamento de posições ou remoção de ordens. Em outros casos, é de acordo com o gosto do cliente.
Você pode percorrer a história desde o início ou desde o final. Não há diferença. De qualquer forma, a função procura o pedido com o último horário de fechamento. E se você quiser apagar ou fechar pedidos, então você precisa pesquisar a partir do final da lista. Caso contrário, o laço saltará os pedidos.
Se a função busca a ordem com o último tempo de fechamento, então a busca será obviamente mais rápida a partir do final, em vez do início da história - do tempo atual para o passado.
Se a função estiver procurando uma ordem com o último fechamento, a busca será obviamente mais rápida, não do início da história, mas do fim - do tempo atual ao tempo passado.
Na direção oposta, a função encontrará a ordem com o último fechamento mais rápido, não a alterará até o final do ciclo e retornará o resultado. Na direção da frente, ele procurará em todas as ordens e retornará uma das últimas ordens. A diferença é que as variáveis serão sobrescritas em cada passagem do loop. Sim, há uma diferença. Mas eu acho que não é muito significativo. Embora eu preferisse o laço na direção inversa à dianteira. Apesar do fato de que a função funcionará de uma forma ou de outra.
Maksim Mihajlov #: Olá a todos, há alguma forma de alternar entre as janelas de gráficos programática, ou seja, tornar qualquer gráfico ativo a partir de um programa?
Confira
TABELA_BRING_TO_TOP
Exibir gráfico no topo de todos os outros gráficos
Você pode percorrer a história desde o início ou desde o final. Não há diferença. De qualquer forma, a função procura o pedido com o último horário de fechamento. E se você quiser apagar ou fechar pedidos, então você precisa pesquisar a partir do final da lista. Caso contrário, o laço saltará os pedidos.
De qualquer forma, eu fiz dois EAs completamente idênticos, exceto pela contagem do lote de pedidos!!! e aqui está o resultado:
NÃO TRABALHA (ou seja, não abre BAY em vez de SELL)
voidOnTick()
{
// Получим значение индикатора
dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif(CountOrders()==0)
{
//Если появился сигнал на покупку, то откроем ордер на покупкуif(bSignalBuy())
{
if(GetLotSize()>LotControl) vOrderOpenSell();
else vOrderOpenBuy();
}
// Если появился сигнал на продажу, то откроем ордер на продажуif(bSignalSell())
{
if(GetLotSize()>LotControl) vOrderOpenBuy();
else vOrderOpenSell();
}
}
}
,,,
double GetLotSize()
{
double Ls=0;
for(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL) {Ls=OrderLots();}
}
}
}
return Ls;
}
TRABALHO ( (isto é, abre BAY em vez de SELL)
voidOnTick()
{
// Получим значение индикатора
dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif(CountOrders()==0)
{
//Если появился сигнал на покупку, то откроем ордер на покупкуif(bSignalBuy())
{
if(GetLotSize()>LotControl) vOrderOpenSell();
else vOrderOpenBuy();
}
// Если появился сигнал на продажу, то откроем ордер на продажуif(bSignalSell())
{
if(GetLotSize()>LotControl) vOrderOpenBuy();
else vOrderOpenSell();
}
}
}
...
double GetLotSize()
{
double Ls=0;
datetime t=0;
int i=OrdersHistoryTotal();
for(int pos=0; pos<i; pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
{
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
}
}
}
}
return Ls;
}
Tanto quanto eu posso ver, a diferença é esta:
Você pode percorrer a história desde o início ou desde o final. Não há diferença. De qualquer forma, a função procura o pedido com a última hora de fechamento. E se você quiser apagar ou fechar pedidos, devemos pesquisar a partir do final da lista. Caso contrário, o laço saltará os pedidos.
até onde eu posso ver, a diferença é a seguinte:
Neste caso, não há diferença. O ciclo de OrersTotal a 0 é obrigatório somente no caso de fechamento de posições ou remoção de ordens. Em outros casos, é de acordo com o gosto do cliente.
Você pode percorrer a história desde o início ou desde o final. Não há diferença. De qualquer forma, a função procura o pedido com o último horário de fechamento. E se você quiser apagar ou fechar pedidos, então você precisa pesquisar a partir do final da lista. Caso contrário, o laço saltará os pedidos.
Se a função busca a ordem com o último tempo de fechamento, então a busca será obviamente mais rápida a partir do final, em vez do início da história - do tempo atual para o passado.
Se a função estiver procurando uma ordem com o último fechamento, a busca será obviamente mais rápida, não do início da história, mas do fim - do tempo atual ao tempo passado.
Na direção oposta, a função encontrará a ordem com o último fechamento mais rápido, não a alterará até o final do ciclo e retornará o resultado. Na direção da frente, ele procurará em todas as ordens e retornará uma das últimas ordens. A diferença é que as variáveis serão sobrescritas em cada passagem do loop. Sim, há uma diferença. Mas eu acho que não é muito significativo. Embora eu preferisse o laço na direção inversa à dianteira. Apesar do fato de que a função funcionará de uma forma ou de outra.
Olá a todos, há alguma forma de alternar entre as janelas de gráficos programática, ou seja, tornar qualquer gráfico ativo a partir de um programa?
Confira
Exibir gráfico no topo de todos os outros gráficos
bool
Confira
Exibir gráfico no topo de todos os outros gráficos
bool
Obrigado!
Você pode percorrer a história desde o início ou desde o final. Não há diferença. De qualquer forma, a função procura o pedido com o último horário de fechamento. E se você quiser apagar ou fechar pedidos, então você precisa pesquisar a partir do final da lista. Caso contrário, o laço saltará os pedidos.
De qualquer forma, eu fiz dois EAs completamente idênticos, exceto pela contagem do lote de pedidos!!! e aqui está o resultado:
NÃO TRABALHA (ou seja, não abre BAY em vez de SELL)
TRABALHO ( (isto é, abre BAY em vez de SELL)
De qualquer forma, eu fiz dois EAs completamente idênticos, exceto pela contagem do lote de pedidos!!! e aqui está o resultado:
NÃO TRABALHA (ou seja, não abre BAY em vez de SELL)
TRABALHO (ou seja, abre BAY em vez de SELL)
Mais uma vez, enfatizo a diferença
1 variante
2 variantes
De qualquer forma, eu fiz dois EAs completamente idênticos, exceto pela contagem do lote de pedidos!!! e aqui está o resultado:
NÃO TRABALHA (ou seja, não abre BAY em vez de SELL)
TRABALHO ( (isto é, abre BAY em vez de SELL)
Tente entender o que você está codificando, em vez de copiar cegamenteOrdensTotal,OrdensHistóriaTotal,
OrderSelect
pool=MODE_TRADES
[em] Fonte dos dados a selecionar. Usado quando o parâmetro selecionado é SELECT_BY_POS. Pode ser um dos seguintes valores:
MODE_TRADES (default) - a ordem é selecionada entre ordens abertas e pendentes,MODE_HISTORY - a ordem é selecionada entre ordens fechadas e apagadas.