[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 341
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Os parâmetros de indicação salvos são "inseridos" nos indicadores uma vez durante a inicialização do modelo, depois "eles se tornam completamente independentes"/.
Todos os parâmetros indicadores alterados são salvos no modelo, se você tiver alterado os parâmetros indicadores, salve novamente o modelo.
>> Obrigado!
mazepa 08.12.2009 17:42
RESPOSTA: sobre o CÓDIGO!
Se eu entender o algoritmo, então na hora marcada abrimos a compra (venda), se o preço passou >10 pips na outra direção, então fechamos o pedido e ficamos na direção oposta.
Para fechar, estou usando minha própria função universal.
//Função para fechar todas as ordens de mercado em
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //cruzar todas as ordens para todas as moedas
{
if (OrderSelect(i,SELECT_BY_POS)==true) // se a ordem for selecionada com sucesso {
if (OrderSymbol()!=Symbol()) continuar; // se o pedido estiver na moeda errada, continuar a busca
{
switch(OrderType()) //in o pedido requerido, determinar o tipo (Bue_Sell) e fechá-lo
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
caso 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
} }
return;
}
Portanto, agora antes de abrir na direção oposta, basta escrever _CloseAllOrder()
Amigos, eu estou apenas aprendendo. Por favor, não olhe para o conteúdo do programa, apenas me ajude a encontrar um bug no programa:
int start()
{
switch(CurrentState)
{
case STATE_SHORT:
MyOrderTicket = OrderSend(Symbol(), OP_SELLL, Lots, Bid, 1, 0, 0,NULL, 1, 0, Red);
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if (OrderModify(OrderTicket(),OrderOpenPrice(),Bid+90*Point,Bid-Profit1*Point,0,Green)==verdadeiro)
{CurrentState=STATE_1;
break;
}
case STATE_1:
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if(Ask <= OrderTakeProfit())
{CurrentState=STATE_SHORT;
break;
}
if(Bid >= (OrderOpenPrice()+Profit1*Point)
{CurrentState=STATE_SHORT;
break;
}
}
//
return(0);
}
O erro é o seguinte: \ Fim_do_programa' - parêntese_esquerda desequilibrada. Onde está o erro?
Amigos, eu estou apenas aprendendo. Por favor, não olhe para o conteúdo do programa, apenas me ajude a encontrar um bug no programa:
Entendi:
necessidade:
Como declarar uma matriz unidimensional sem aplicar uma gravação em cada célula de memória (é possível)
mas por uma seqüência unidimensional
ou é uma seqüência unidimensional apenas para constantes numéricas e lógicas!!!?
Entendi:
>> temos que fazê-lo:
Obrigado, amigo!
Uma pergunta a mais. Se (OrdersTotal()==0) isto... se o número de ordens abertas for igual a zero. então como será... se o número de pedidos abertos PARA O DIA for igual a zero.
Não existe algo como OrderDayTotal?
não, mas sempre podemos escrever nossa própria função)
Conta ordens de compra e venda, para um determinado símbolo, abertas hoje. Nenhuma ordem pendente.
if(OrderDayTotal(Symbol())==0) {...}
algo parecido com isto)
mazepa 08.12.2009 17:42
RESPOSTA: Na COD!
Se eu entender o algoritmo, abrimos a compra (venda) na hora marcada, se o preço passar >10 pips na outra direção, fechamos o pedido e passamos para o lado oposto.
Eu uso minha própria função universal para fechá-la.
//Função para fechar todas as ordens de mercado na janela --------------------------------------------------------------------------------------------------
nulo _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //cull all orders for all currencies
{
se (OrderSelect(i,SELECT_BY_POS)==verdadeiro) //se o pedido for selecionado com sucesso
{
se (OrderSymbol()!=Symbol()) continuar; // se a ordem estiver na moeda errada, continue a busca
{
switch(OrderType()) // quando o pedido solicitado for apresentado, defina seu tipo (Bue_Sell) e feche-o
{
caso 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
caso 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
retornar;
}
Então agora você apenas escreve _CloseAllOrder() antes de abrir na direção oposta
A função é a bomba que me levou um par de páginas. Muito obrigado.mazepa 08.12.2009 17:42
RESPOSTA: Na COD!
Se eu entender o algoritmo, abrimos a compra (venda) no tempo definido, se o preço tiver se movido >10 pips na outra direção, fechamos o pedido e nos movemos na direção oposta.
Eu uso minha própria função universal para fechá-la.
//Função para fechar todas as ordens de mercado na janela --------------------------------------------------------------------------------------------------
nulo _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //cull all orders for all currencies
{
se (OrderSelect(i,SELECT_BY_POS)==verdadeiro) //se o pedido for selecionado com sucesso
{
se (OrderSymbol()!=Symbol()) continuar; // se a ordem estiver na moeda errada, continue a busca
{
switch(OrderType()) // quando o pedido solicitado for apresentado, defina seu tipo (Bue_Sell) e feche-o
{
caso 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
caso 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
retornar;
}
Então agora você apenas escreve _CloseAllOrder() antes de abrir na direção oposta
A função é a bomba que me levou um par de páginas. Muito obrigado.