[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 188
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
Tentando calcular swaps, mas não está funcionando
Aqui está o código que produz os swaps dos últimos 20 negócios.
for ( int j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {
OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);
if(OrderType()==OP_BUY)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPLONG)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
if(OrderType()==OP_SELL)
Alert(OrderSymbol()+" ЛОТ = "+OrderLots()+" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+" РАСЧЕТНЫЙ СВОП "+MarketInfo(OrderSymbol(),MODE_SWAPSHORT)*MarketInfo(OrderSymbol(),MODE_BID)*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE));
}
Por alguma razão, a diferença é um múltiplo de 10.
Ou seja, a troca calculada é 10 vezes maior do que a real.
Não consigo nem mesmo adivinhar o que está errado aqui.
MarketInfo(OrderSymbol(),MODE_SWAPTYPE) retorna one, depois
"Método de cálculo dos swaps 1 - na moeda base do instrumento";"
Eu tomo o valor de troca em pips, que retorna
MarketInfo(OrderSymbol(),MODE_SWAPLONG)
Multiplico este valor por Bid,
*MarketInfo(OrderSymbol(),MODE_BID)
depois a o tamanho do lote
*OrderLots()
e multiplicando pelo valor de um ponto na moeda de depósito de um lote
*MarketInfo(OrderSymbol(),MODE_TICKVALUE)
Os valores devolvidos são:
EURGBP LOTE = 0,46000000 SWAP REAL = -1,31000000 SWAP ESTIMADO -13,05244609
Por favor, me diga como fazer isso))
duplo MA1,MA2;
MA1=iMA(....,0);
MA2=iMA(....,3);
se (MA1-MA2>Ponto)//MA olha para cima
se (MA1-MA2,-Point)//MA olha para baixo
Multiplico este valor por Bid,
*MarketInfo(OrderSymbol(),MODE_BID)
Para que é isso?
Por favor, me diga como fazer isso))
duplo MA1,MA2;
MA1=iMA(....,0);
MA2=iMA(....,3);
se (MA1-MA2>Ponto)//MA olha para cima
se (MA1-MA2,-Point)//MA está olhando para baixo
Muito obrigado)))
Para que serve isto?
Não consegui encontrar uma descrição do que ele retorna
MarketInfo(OrderSymbol(),MODE_SWAPLONG)
Cheguei à conclusão de que este é o tamanho do ponto EUR na cotação EURGBP , então eu o multipliquei por BID para obter o quanto está em GBP
A questão é que
MarketInfo(OrderSymbol(),MODE_TICKVALUE)
Valor do ponto de retorno por lote apenas por GBP em cotação EURGBP, não por EUR.
Em nenhum lugar eu encontrei uma descrição do que o valor retorna
Por alguma razão, continuei pensando que todos os cálculos estavam na moeda do depósito.
Função MarketInfo(OrderSymbol(),MODE_SWAPSHORT)
Devolve um valor inteiro de -2, o mesmo que para todas as outras encomendas. Portanto, presumo que este é o valor dos pontos.
Vamos supor que este é o valor do swap expresso em pips de nossa moeda de depósito.
Moeda de depósito = USD
Multiplicar
MarketInfo(OrderSymbol(),MODE_SWAPSHORT)
Por número de lotes
*OrderLots()
Também multiplicar pelo valor de um pip de nossa moeda de depósito por lote
*10
Obtenha
SWAP = -9.20000000
Em vez de
TROCA REAL = -1,31000000
Função MarketInfo(OrderSymbol(),MODE_SWAPSHORT)
Devolve um valor inteiro de -2, o mesmo que para todas as outras encomendas. Portanto, presumo que este seja o valor das gratificações.
Para EURGBP ele retorna 0 (isto é Alpari) para shorts e -0,68 para longos e isto é exatamente em dólares.
Para dizer de forma grosseira: