[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 611

 

Mais uma vez me perguntei qual seria o índice de posição. Se é um número de posição na história, então o que esta função faz?

GetIndexLastPos Index da última posição aberta ou -1 ???

o índice da última posição aberta é sempre 1 porque é o mais recente !!!

estou obviamente entendendo mal o INDEX ....

quem sabe?

 
lottamer:

Como o senhor acha que deve ser comparado?

Vamos começar:

1.Se(Stoch_1>Stoch_2) flag1=1 ; , então a condição seguinte (Stoch_1<Stoch_2 && flag1===1) não pode, em princípio, ser verdadeira, porque se Stoch_1<Stoch_2 flag1==0 e se flag1===1então Stoch_1>Stoch_2. é o mesmo com todas as condições subseqüentes nesta função, portanto somente a bandeira1 pode alterar o valor. Ou seja, seu programa executará as duas primeiras linhas, saltaráa terceira, executaráa quarta, saltaráa quinta, executará a sexta, executará a sétima, e saltará todas as outras.


	          
 
xant:

TarasBY,

Var1 e outros nomeados como eu, inseriu o bloco fGet_MineGV() dentro do init e o bloco fSave_MineGV() dentro do staft.

Ao compilar, a EA revelou uma série de erros.

Eu tentei um a um. Primeiro eu o inseri dentro do init, depois o compilei. Há 0 erros, uma observação: não é referenciado e será removido do arquivo de exp. Bem, faz sentido para mim, não consegue encontrar o arquivo, porque ele ainda não existe. Tem que ser escrito dentro da estaca.

Assim, quando tento escrever o segundo bloco dentro da estaca, isso produz muitos erros.

Algoritmo estrutural:

int init()
{
    fGet_MineGV();
}
int start()
{
    fSave_MineGV();
}
double Var1, Var2, Var3, Var4;  // 4-ре переменных для сохранения (у Вас они свои !!!)
void fSave_MineGV (string fs_PrefName = "")     // префикс имени переменной
{
    static datetime ldt_NewBar;
    datetime ldaTBeginBar = iTime (Symbol(), 1, 0);
//----
    //---- Сохраняемся в начале каждой минуты
    if (ldt_NewBar == ldaTBeginBar) return;
    ldt_NewBar = ldaTBeginBar;
    //---- Сохраняем поочереди значения каждой переменной
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
    GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    GlobalVariableSet (ls_Name, Var4);
//----
}
// в init()
void fGet_MineGV (string fs_PrefName = "")     // префикс имени переменной
{
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
//----
    //---- Восстанавливаем значения переменных
    if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
//----
}

Você, é claro, fez isso???? E não compila????

 
lottamer:

Mais uma vez me perguntei qual seria o índice de posição. Se é um número de posição na história, então o que esta função faz?

GetIndexLastPos Index da última posição aberta ou -1 ???

o índice da última posição aberta é sempre 1 porque é o mais recente !!!

estou obviamente entendendo mal o INDEX ....

quem sabe?


o índice do último aberto é sempre 1 porque é o mais recente!!! Não 1, mas 0, e não na história. No histórico 0 está o índice da última posição fechada ou da última ordem eliminada, e nem sempre, porque além do mercado, há também ordens pendentes, que não são posições.
 
Profi, por favor me diga como escrever programticamente o seguinte: "Para colocar uma ordem pendente em nível SL com parâmetros de uma ordem de fechamento levando em conta o spread" e onde anexá-lo no código de um EA?
 
yosuf:
Prof Profi, por favor me diga como escrever o seguinte programático: "Para colocar uma ordem pendente no nível SL com parâmetros de uma ordem de fechamento incluindo o spread" e onde anexá-lo no código EA?

Você não pode fazer isso com parâmetros de uma ordem próxima. O preço de abertura também é um parâmetro.
 

TarasBY

Sim, eu fiz como você escreveu. E não se compila.

Obviamente, eu fiz algo errado, mas não sei exatamente o quê. Você pode passar por ela passo a passo.

 
rigonich:

Não há como fechar com os parâmetros daquele que deve ser fechado. O preço de abertura também é um parâmetro.
Por quê? Por exemplo, foi aberto um pedido com O=1.2900, TP 1.300 e SL 1.2800. A ordem pendente deve ter os parâmetros BAY O= 1,2800 com TP 1,2900 e SL 1,2700. Se possível, por favor, considere a propagação a ser perdida.
 
yosuf:
Por quê? Por exemplo, uma ordem BAY está aberta em O= 1.2900 com um TP de 1.300 e um SL de 1.300. A ordem pendente deve ter os parâmetros BAY O= 1,2800 com TP 1,2900 e SL 1,2700. Se possível, por favor, considere a propagação a ser perdida.


O primeiro pedido tem um preço aberto de 1.2900 e TP de 1.300. O segundo pedido tem um preço aberto de1.2800 e TP de 1.290. Estes são parâmetros diferentes. A primeira é BAY, a segunda é BAY_STOP. Estes também são parâmetros diferentes. E quando se fecha no SL, não se perde o spread, mas muito mais (spread+SL*Point).
 
rigonich:

Vamos começar:

1.Se(Stoch_1>Stoch_2) flag1=1 ; , então a condição seguinte (Stoch_1<Stoch_2 && flag1===1) não pode, em princípio, ser verdadeira, porque se Stoch_1<Stoch_2 flag1==0 e se flag1===1então Stoch_1>Stoch_2. é o mesmo com todas as condições subseqüentes nesta função, portanto somente a bandeira1 pode alterar o valor. Ou seja, seu programa executará as duas primeiras linhas, saltaráa terceira, executaráa quarta, saltaráa quinta, executará a sexta, executará a sétima, e saltará todas as outras.


Você está errado, porque simplesmente não entendeu o ponto. Funciona, e tudo funciona perfeitamente, da maneira que eu preciso. Talvez o código pudesse ser simplificado, mas agora já não é mais para a gordura... Só preciso terminar a EA inteira e já olhar o REST da idéia comercial que contém....

e a programação por programação não me interessa muito...

Razão: