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

 
TarasBY:
E onde você leu isso sobre a TimeDayOfWeek () (no exemplo)? :)))

À direita ;)

Eu estava errado, eu também posso colocar na forma de tempo, mas no exemplo é diferente e mais conveniente ))))

 
Vitek2010:
Não, não explica. Vou explicar - seu fórum é como uma esperança para o último reduto competente de prog. e inserção de tamanho - é assim que a redação PERÍODO_W1 o vê, mas nem o uso de tamanho nem o uso de dados fixos na forma de datas obtêm qualquer efeito desejado. Eu postei uma pergunta específica sobre sexta-feira - a propósito seu código não compila porque diz 'versão' - propriedade desconhecida, então se você não sabe como colocar DayOfWeek e 5 (número de sexta-feira) no código, outras opções não ajudarão .


if(TimeDayOfWeek(TimeCurrent())==5)   //Пятница
 
r772ra:



Por favor, cole sua variante em meu código indicador e compile-a. e poste o indicador corrigido em texto claro e não como um arquivo. O camarada Venin me deu um código incompilável e nenhuma resposta.

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 1

#indicador de propriedade_color1 Lime

//--------------------------------------------------------------------

duplo tampão[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer;)

retorno(0);

}

// -------------------------------------------------------------------


int deinit()

{


retorno(0);

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Barras - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Friday

if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])

Buffer[i] = 0;

senão

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){/se tanto os movimentos atuais como os anteriores estiverem aumentando

Buffer[i] += NormalizeDouble((Fechar[i] - Fechar[i+1])/Point,0);}

if(Close[i]<Fechar[i+1]&&Fechar[i+1]<Fechar[i+2]){// se o movimento atual e anterior cair

Buffer[i] += NormalizeDuplo((Fechar[i+1] - Fechar[i])/Ponto,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){// se o movimento atual estiver crescendo e o anterior estiver caindo

Buffer[i] += NormalizeDuplo((Fechar[i+1] - Fechar[i])/Ponto,0);}

if(Close[i]<Fechar[i+1]&&Close[i+1]>=Fechar[i+2]){// se o movimento atual descer e o anterior estiver subindo

Buffer[i] += NormalizeDouble((Fechar[i] - Fechar[i+1])/Point,0);}

}

retorno(0);

}

//---------------------------------------------------------------------

 
Vitek2010:


Por favor, cole sua variante em meu código indicador e compile-a. e poste o indicador corrigido em texto simples e não como um arquivo. O camarada Venin me deu um código impenetrável e não disse uma palavra.


construir 509

//+------------------------------------------------------------------+
//|                                                    Vitek2010.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_buffers 1

#property  indicator_color1 Lime

//--------------------------------------------------------------------

double Buffer[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer);

return(0);

}

// -------------------------------------------------------------------



int deinit()

{



return(0);

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Пятница

Buffer[i] = 0;

else

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее и преддыдущее движение растут

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее и преддыдущее движение падают

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее лвижение растет а предыдущее падает

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее движение падает а предыдущее растет

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

return(0);

}

//---------------------------------------------------------------------
 
Não é assim que se define sexta-feira na história, eu não sei.
 
TarasBY:
então o que a referência a uma biblioteca em conformidade tem a ver com isso?


Porque:

TarasBY:
Vitya, não há nada a se resolver aqui - a pessoa quer que as variáveis globais de uma caixa de areia (EA com suas bibliotecas) sejam visíveis em outra caixa de areia(biblioteca compilada). :)))
 

Cavalheiros, poderiam me fazer um favor e dar uma olhada neste pedaço de código e ver se eu introduzi corretamente as condições de entrada para os 3 indicadores.

Como estou apenas aprendendo muitas coisas que não entendo.

E_ma=iMA(Symbol(),TimeFrame,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
Cloce =iClose(Símbolo(),PERÍODO_H1,1);

e_ma=iMA(Symbol(),timeframe,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
cloce =iClose(Símbolo(),PERÍODO_M15,1);

bbUP=iCustom(Symbol(),PERIOD_M5,"Bandas de Bollinger",BandsPeriod,BandsShift,BandsDeviations,1,0);
bbDOWN=iCustom(Símbolo(),PERÍODO_M5, "Bandas de Bollinger",Período de Bandas,Mudança de Bandas,Desvios de Bandas,2,0)

if(OrderTotal()==0 && CountBuy()==0 && CountSell())
{
if(Cloce >E_ma && cloce >e_ma)
{
if(Ask<==bbDOWN)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Green);
if(bilhete>0)
{
TP = NormalizeDuplo(Ask + TakeProfit * Ponto, Dígitos);
SL = NormalizeDouble(Ask-StopLoss * Ponto, Dígitos);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
senão
if(Cloce <E_ma && cloce <e_ma)
{
if(Bid>=bbUP)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",Magic,0,Red);
if(bilhete>0)
{
TP = NormalizeDouble(Bid - TakeProfit * Ponto, Dígitos);
SL = NormalizeDuplo(Bid+StopLoss* Ponto, Dígitos);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
}


retorno(0);

Corrija-me se algo está errado, compila sem erros, mas nas ordens do testador não se abrem. Porque... onde um erro no estado. Como escrevê-lo corretamente, ainda não entendo. alguém nos dedos explica POR FAVOR!!!

 
r772ra:
Tudo isso está errado, como definir sexta-feira na história, eu não sei.

Você removeu a zeragem do ciclo semanal if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) e a substituiu por if(TimeDayOfWeek(TimeCurrent())==5) //Friday talvez se estas funções funcionarem em conjunto de alguma forma ele possa funcionar. Talvez eu tenha tentado uma centena de coisas diferentes. acho que é fácil mostrar leituras multitemporais com prazos semanais em prazos mais baixos. ainda não consigo encontrar uma solução.

 
Vitek2010:

Sim, você removeu a zeragem do ciclo semanal if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) e a substituiu por if(TimeDayOfWeek(TimeCurrent())==5) //Maybe se estas funções estiverem de alguma forma juntas, elas funcionarão. Posso ter tentado uma centena de coisas diferentes. Acho que é fácil mostrar leituras multitemporais com prazos semanais em prazos mais baixos, mas ainda não consigo encontrar uma solução.


Aqui está uma idéia, abra uma nova barra semanal - reinicie o buffer para zero, depois acumule seus pontos
 
alsu:
Faça do Ticket uma matriz Ticket[5], armazene todos os 5 tickets nele. Ao fechar, percorrer todas as passagens de acordo.

Como implementá-la aproximadamente? Se em outras funções eu pareço ter entendido, mas com ordens e matrizes eu ainda não entendi bem.