[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 187

 
NayTmeR:

Por exemplo, quando a linha val1[c] cruza 0,45 para cima, o valor de tempo é atribuído à variável TimeBegin

qual é a pergunta? como armazenar o tempo ao atravessar? primeiro verifique se há um cruzamento, depois armazene
 

Como você atribui este tempo a uma variável ?

 
eddy:
Bem, as setas estão na barra de abertura.

Não tenho bem certeza se entendi. há setas na barra de abertura, mas desenhadas pela função correspondente - OrderSend(). Estas setas não estão relacionadas com as setas desenhadas pela OrderModify(), estão? Eu entendi que usando OrderModify(), eu não apenas colori flechas, mas também mudo o nível de stop loss, alterando o valor da variável SL? Está escrito na ajuda:

bool OrderModify( int ticket, preço duplo, stoploss duplo, takeprofit duplo, data de validade, cor seta_color=CLR_NONE)

Altera os parâmetros de posições previamente abertas ou ordens pendentes.

Isso significa que ele muda não apenas a cor da seta, mas também "muda os parâmetros das ordens previamente abertas". Sugere que se mude as paradas e se desenhem flechas. Mas não o faz por alguma razão.

 

A palavra "apenas" era sobre a seta, não sobre o que a função faz.

стрелки на баре открытия есть, но нарисованные соответствующей функцией - OrderSend(). Эти стрелки же не относятся к стрелкам, рисуемым OrderModify()?

Do que estou falando, você estabelece uma parada e/ou um take, e é assim que as setas mudam.

 
NayTmeR:

Como você atribui este tempo a uma variável ?

há uma função para isso no livro da kim
 
todem:
existe tal característica na coleção da Kim

Você pode ser mais específico? Onde posso encontrá-lo? Onde posso encontrar a coleção da Kim?
 
eddy:

A palavra "apenas" era sobre a seta, não sobre o que a função faz.

Você pode usar a função para definir uma parada e/ou uma tomada, portanto suas setas mudarão.

O manual OrderModify() diz:

arrow_color - Cor das setas de modificação StopLoss e/ou TakeProfit na tabela. Se este parâmetro estiver faltando ou seu valor for CLR_NONE, as setas não aparecerão no gráfico.

Isto é, tanto quanto entendi, OrderModify() desenha paus porque diz "setas de MODIFICAÇÃO", o que significa que não há apenas setas de abertura/fecho criadas por OrderSend, mas também setas de modificação criadas por OrderModify. E estas setas de MODIFICAÇÃO só podem estar ausentes se o parâmetro estiver ausente ou for igual a CLR_NONE. Mas meu parâmetro está presente e igual a "Verde". Entendi que não há nenhum parâmetro especial responsável pela presença ou ausência de setas de modificação, ele é controlado pela ausência ou igualdade de seu CLR_NONE. Eu julgo por analogia com a OrderSend no mesmo ajudante:

arrow_color - cor da seta de abertura na tabela. Se o parâmetro estiver faltando ou seu valor for CLR_NONE, a seta de abertura não é exibida no gráfico.

 

Por favor, ajude com a função isCloseLastPosByStop ().

A função do MetaEditor éCloseLastPosByStop () (mas somente o que está escrito em https://www.mql5.com/ru/forum/107476/page21).

Após uma compilação fracassada, recebo erros:

"(' - definição da função inesperada

't' - variável não definida

't' - variável não definida

'}' - Parênteses desequilibrados

É esta função, como já comentei sobre o resto do código.

 

Olá a todos! Por favor, ajude a combinar as seguintes coisas. O resultado deve ser: duas linhas seguindo o preço, uma 20 pips abaixo de Ask,

Além disso, recebo um bipe se o preço mudar em 20 pontos por 1 tick.

Tudo funciona bem separadamente. Obrigado de antemão!

1) A linha está 20 pips abaixo de Ask.

//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask-20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask-20*Point);
retorno(0);
}

//+------------------------------------------------------------------+

2) Linha acima Pergunte até 20p.

//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point);
retorno(0);
}

//+------------------------------------------------------------------+

3) Taxa de mudança de preço ao longo do tempo.

#property show_inputs

int externo pips=2; // mudar Ask
tempo duplo externo_=0,1; //c. ~ carrapato
bool externo all_from_view=verdadeiro; //símbolo de corrente somente - falso

int i, l, p, number_of_characters;
val[], na_tela;
int Ask_save[];

//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
início nulo(){
number_of_characters=SymbolsList(val, true);//write tools and their number in the val array call SymbolsList function
ArrayResize(Ask_save,number of_characters);
if(number of_characters == -1){ Alerta("SymbolsList(string &Symbols[], bool Selected) failed"); return;}
if(!all_from_selected){
number_of_characters=1;
ArrayResize(Ask_save,number_of_characters);
ArrayResize(val,número de_caracteres);
val[0]=Símbolo();
}

while(true&&&!IsStopped()){ // se permitido e não parado o roteiro continuará

Alerta("recalcular em "+Time_+" seg;)

for(i=0;i<número de_caracteres;i++){ //calcule o valor de propagação para símbolos do relógio de mercado
if((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT))>=pips){
Alert(val[i]+", "+Period()+" mudado para baixo por "+DoubleToStr((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)),0)+" pips");
PlaySound("timeout.wav");
}
if((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i])>=pips){
Alert(val[i]+", "+Periodo()+" mudado para cima por "+DoubleToStr((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i]),0)+" pips");
PlaySound("email.wav");
}
Ask_save[i]=MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT);
}
Sleep(Time_*1000);//pausa por seg.
}

/*
number_of_characters=SymbolsList(val, true);//write tools and their number in val array SymbolsList function call
if(number of_characters == -1){ Alerta("Arquivo de abertura de erro em SymbolsList(string &Symbols[], bool Selected)"); retornar;}

while(true&&&!IsStopped()){ // se permitido e não parado o roteiro continuará
on_screen="\r\n"; // travessão
for(i=0;i<número de_caracteres;i++)//calcule o valor de propagação para símbolos da revisão do mercado
on_screen=on_screen+val[i]+" spread cost = " + DoubleToStr(MarketInfo(val[i],MODE_SPREAD)*MarketInfo(val[i],MODE_TICKVALUE),0)+"\r\n";
Comentário(to_screen);//display
Alerta("recalcular");//sinal
Dormir(3000);//pausa por 3 segundos.
}
*/
}
void deinit(){Comment(""");}
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=


//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
// a função lê todos os instrumentos financeiros da Market Watch.
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
int SymbolsList(string &Symbols[], bool Selected){
int Offset, SymbolsNumber; string SymbolsFileName;
if(Selected) SymbolsFileName = "symbols.sel"; else SymbolsFileName = "symbols.raw";
int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
if(hFile < 0) return(-1); if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116; }
senão { SymbolsNumber = FileSize(hFile) / 1936; Offset = 1924; }
ArrayResize(Symbols, SymbolsNumber);
if(Selected) FileSeek(hFile, 4, SEEK_SET);
for(int i = 0; i < SymbolsNumber; i++){Symbols[i] = FileReadString(hFile, 12); FileSeek(hFile, Offset, SEEK_CUR);}
FileClose(hFile);
retorno(SímbolosNúmero);
}

 
globad:

Olá a todos! Por favor, ajude a combinar as seguintes coisas. O resultado final deve ser: duas linhas seguindo o preço um abaixo Pergunte por 20pts,....

Isto é desrespeitoso para aqueles que você está pedindo. Aprenda como postar corretamente o código -> SRC