[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 617

 
Você pode me dizer como conhecer o lote da última posição fechada? Por exemplo: a última posição fechou com um takeaway e queremos aumentar o lote da próxima posição.
 
Vadimkin:
Você pode me dizer como declarar um indicador sobreposto a outro indicador (por exemplo, MA em RSI) em um EA?
somente calcular explicitamente, por exemplo, usando iMAOnArray() ou por meu próprio algoritmo.
 
david2:
Você pode me dizer como conhecer o lote da última posição fechada? Por exemplo: a última posição fechou com um takeaway e queremos aumentar o lote da próxima posição.
int oht = OrdersHistoryTotal();
double last_lot;
OrderSelect(oht-1,SELECT_BY_POS,MODE_HISTORY);
if(NormalizeDouble(OrderClosePrice()-OrderTakeProfit(),Digits)==0) //ордер закрыт по тейкпрофиту
{
   last_lot = OrderLots();
   // ура
}
 
alsu:

Muito obrigado, mas não está claro porque os parênteses são oht-1 e não oht.
 
david2:
Muito obrigado, mas não está claro porque os parênteses são oht-1 e não oht.

o primeiro elemento da matriz tem o número 0, o último tem o tamanho 1
 
alsu:

o primeiro elemento da matriz tem o número 0, o último tamanho - 1
Estou vendo.
 
alsu:
somente calcular explicitamente, por exemplo, usando iMAOnArray() ou meu próprio algoritmo.

Obrigado, vou tentar.

Eu tentei uma abordagem diferente. Eu criei um simples indicador MA personalizado da RSI. Agora eu preciso formular condições para que o Expert Advisor abra posições por ele.

Por exemplo:

if (RedLine1>BlueLine1&&RedLine2<BluLine2) OP_BUY

if (RedLine1<BlueLine1&&RedLine2>BluLine2) OP_SELL

Mas eu não sei como declará-los. Ou seja:

double RedLine1 = iCustom(Symbol(), 0, "MARSI", ?, ?, ......, 1);

Poderia, por favor, dar uma olhada? Ou alguém, por favor, dê uma olhada.

Arquivos anexados:
marsi.mq4  2 kb
 
Vinin:


iHigh(NULL, PERÍODO_D1,1) - a alta de ontem

iLow(NULL, PERÍODO_D1,1) - o mínimo de ontem

iOpen(NULL, PERÍODO_D1,1) - a abertura de ontem

iClose(NULL, PERÍODO_D1,1) - o fechamento de ontem

É possível definir iHai, iLo, iOpen, e iClose para uma data específica, que pode ser alterada nas configurações do indicador?

dados int externos = 08/03/2011

iOpen(NULL, 08/03/2011,1) - qual é a abertura?

 
Vadimkin:

Obrigado, vou tentar.

Eu tentei uma abordagem diferente. Eu criei um simples indicador MA personalizado da RSI. Agora eu preciso formular condições para que o Expert Advisor abra posições com ele.

Por exemplo:

if (RedLine1>BlueLine1&&RedLine2<BluLine2) OP_BUY

if (RedLine1<BlueLine1&&RedLine2>BluLine2) OP_SELL

Mas eu não sei como declará-los. Ou seja:

double RedLine1 = iCustom(Symbol(), 0, "MARSI", ?, ?, ......, 1);

Será que você poderia dar uma olhada nisso? Ou alguém, por favor, dê uma olhada.


No seu caso, não há parâmetros externos, portanto não é preciso escrever nada em vez de perguntas:

double RedLine1 = iCustom(0, 0, "MARSI", índice de linha, número de barras);

Mais especificamente,

RedLine1 duplo = iCustom(0, 0, "MARSI", 0, 1); - vermelho a 1 bar

RedLine2 duplo = iCustom(0, 0, "MARSI", 0, 2); - vermelho em 2 bar

blueLine1 duplo = iCustom(0, 0, "MARSI", 1, 1); - azul em 1 barra

blueLine2 duplo = iCustom(0, 0, "MARSI", 1, 2); - azul na barra 2
 
alsu:

No seu caso, não há parâmetros externos, portanto não é preciso escrever nada em vez de perguntas:

double RedLine1 = iCustom(0, 0, "MARSI", índice de linha, número de barras);

Seja mais específico,

RedLine1 duplo = iCustom(0, 0, "MARSI", 0, 1); - vermelho a 1 bar

RedLine2 duplo = iCustom(0, 0, "MARSI", 0, 2); - vermelho em 2 bar

blueLine1 duplo = iCustom(0, 0, "MARSI", 1, 1); - azul em 1 barra

blueLine2 duplo = iCustom(0, 0, "MARSI", 1, 2); - azul na barra 2


Muito obrigado.
Razão: