Pergunte! - página 130

 
Dave137:

Neste momento, ambas as cores 1 e 2 mostram 'preto' no gráfico!!

Algum Guru especialista pode me ajudar a resolver este problema???

Obrigado antecipadamente!

cor Cor1;

cor Cor2;

FerruFx ...

 

Por favor, alguém pode me explicar como posso me livrar de um problema de "OrderModify error 1". Estive olhando e parece que preciso normalizarDuplo(), mas já normalizei tudo daqui até a lua e ainda estou recebendo o erro.

Uma vez que eu entendi, acho que serei capaz de resolver o problema, por favor, alguém pode ajudar. obrigado.

Também estou recebendo um "erro de dados incomparável (limite de volume 31 em 2008.04.16 07:30 excedido)" se alguém souber o que é isso tudo, eu apreciaria a ajuda.

 
FerruFx:
cor Cor1;

cor Cor2;

FerruFx

SetIndexStyle(0,DRAW_ARROW,0,star_size,color Color1);

SetIndexStyle(1,DRAW_ARROW,0,star_size,color Color2);

Eu tentei inserir cor em todo o lugar, um passo e tentativa de cada vez, e ou eu recebo um erro pelas duas afirmações acima -')' - espera-se vírgula ou ponto-e-vírgula ou nenhum erro, mas depois tudo se mostra preto.

Isto realmente me confunde - Mais alguma sugestão??

Dave ...

 

@xerof123 - este erro ocorre quando você tenta modificar um pedido com os mesmos valores que o pedido aberto já possui. O outro problema é o desajuste de preços entre os diferentes prazos - para se livrar deles, apagar e regenerar todos os dados do tick através do menu do Centro de Histórico.

@Dave137 - por onde começar, você tem cor1, cor2 definida como cadeia do tipo, enquanto que estas são do tipo cor. Note que a palavra-chave 'cor1' na definição de 'propriedades' é apenas a atribuição de um valor, portanto, quando mais tarde você definir cor1, cor2, elas poderiam ser facilmente chamadas de c1,c2. Observe ainda que não é necessário usar as 'propriedades cor1' para começar, uma vez que você as está definindo manualmente na função init() de qualquer forma. Verifique também outros indicadores sobre como usar '# buffers indicadores de propriedade x' e 'tampas indicadoras(x)'...

 

Obrigado omelete,

Tentei tudo o que pude, já estou nisso há 6 dias sem parar e isso me venceu...

Por favor, você pode olhar o código aqui e me dizer por que estou recebendo o miserável "OrderModify error 1".

Tentei normalizar, tentei uma lógica diferente, até tentei oferecer-lhe uma cerveja.

Eu realmente aprecio sua ajuda. Obrigado

for(int i=OrdersTotal()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if(OrderType()<=OP_SELL) ordtotal++;

if(OrderType()==OP_BUY)

{

if(bep===preço verdadeiro & &&Bid-OrderOpenPrice()>=Locked_at*Point)

{

if(OrderModify(OrderTicket(),0,OrderOpenPrice()+7*Point,0,0,0)==verdadeiro) bep=falso;

return(0);

}

if((NormalizeDouble( Bid, Digits)-OrderOpenPrice())>=TS_start*Point)

{

if((NormalizeDouble( Bid, Digitos)-NormalizeDouble( OrderStopLoss(), Digitos)) > TS_start*Point &&

(NormalizeDouble( Bid, Digitos)-NormalizeDouble( OrderStopLoss(), Digitos) - TS_start*Point)>=(TrailEvery-1)*Point)

{

if (TS_start > OrderStopLoss()+Point)

{

OrderModify(OrderTicket(),OrderOpenPrice(), Ask - Point*TS_start ,0,0,SkyBlue);

retornar(0);

}

}

}

}

if(OrderType()==OP_SELL)

{

if(bep===true && OrderOpenPrice()-NormalizeDouble( Ask, Digits) >= Locked_at*Point)

{

if(OrderModify(OrderTicket(),0,OrderOpenPrice()-7*Point,0,0,0)==verdadeiro) bep=falso;

return(0);

}

if((OrderOpenPrice()-NormalizeDouble( Ask, Digits)) >= TS_start*Point)

{

if((NormalizeDouble( OrdeneStopLoss(), Dígitos)-NormalizeDouble( Pergunte, Dígitos)) > TS_start*Point &&

(NormalizeDouble( OrderStopLoss(), Digitos)-NormalizeDouble( Ask, Digitos)-TS_start*Point)>=(TrailEvery-1)*Ponto)

{

if (TS_start > OrderStopLoss() +Point)

{

OrderModify(OrderTicket(),OrderOpenPrice(), Ask + Point*TS_start ,0,0,Orange);

retornar(0);

}

}

}

}

}

}

 
Dave137:
SetIndexStyle(0,DRAW_ARROW,0,star_size,color Color1);

SetIndexStyle(1,DRAW_ARROW,0,star_size,color Color2);

Eu tentei inserir cor em todo o lugar, um passo e tentativa de cada vez, e ou eu recebo um erro pelas duas afirmações acima -')' - espera-se vírgula ou ponto-e-vírgula ou nenhum erro, mas depois tudo se mostra preto.

Isto realmente me confunde - Mais alguma sugestão??

Dave

Não, você faz as mudanças erradas.

Você deve mudar isto:

cor da corda1;

corda Cor2;

Com isto:

cor Cor Cor1;

cor Cor Cor2;

É tudo.

FerruFx

 

Como posso obter este indicador para alertar quando a vela toca a linha superior ou inferior e a inclinação muda de cima para baixo ou vice versa?

#propriedade copyright "ANG3110@latchess.com"

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

#janela_do_cartão_indicador de propriedade

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

Horas internas externas=24;

cor exterior col=Aqua;

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

duplo lr,lr0,lrp;

duplo sx,sy,sxy,sx2,aa,bb;

int p,sName,fs;

int f,f0,f1;

duplo dh,dl,dh_1,dl_1,dh_2,dl_2;

int ai_1,ai_2,bi_1,bi_2;

duplo hai,lai,dhi,dli,dhm,dlm,ha0,hap,la0,lap;

double price_p1,price_p0,price_p2,price_01,price_00,price_02;

int p1,p0,p2,fp;

//*****************************************

int init() {

p=Horas*60/período();

se (fs==0) {sName=CurTime(); fs=1;}

return(0);}

//*******************************

int deinit() {

ObjectDelete("1"+sNome);

ObjectDelete("0"+sNome);

ObjectDelete("2"+sNome); }

//*******************************

int start() {

int i,n;

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

se (f===1) {

p1=iBarShift(Symbol(),Period(),ObjectGet("1"+sName,OBJPROP_TIME1)));

p0=iBarShift(Symbol(),Period(),ObjectGet("0"+sName,OBJPROP_TIME1)));

p2=iBarShift(Symbol(),Period(),ObjectGet("2"+sName,OBJPROP_TIME1)));

if (fp==0 && p!=p1) {p=p1; fp=1;}

if (fp==0 && p!=p0) {p=p0; fp=1;}

if (fp==0 && p!=p2) {p=p2; fp=1;}

}

//====================================================

sx=0; sy=0; sxy=0; sx2=0;

for (n=0; n<=p; n+++) {sx+=n; sy+=Close[n]; sxy+=n*Close[n]; sx2+=MathPow(n,2);}

aa=(sx*sy-(p+1)*sxy)/(MathPow(sx,2)-(p+1)*sx2); bb=(sy-aa*sx)/(p+1);

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

para (i=0; i<=p; i++) {

lr=bb+aa*i;

dh=High-lr; dl=Low-lr;

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

if (i<p/2) {if (i==0) {dh_1=0,0; dl_1=0,0; ai_1=i; bi_1=i;}

if (dh>=dh_1=dh_1) {dh_1=dh; ai_1=i;}

if (dl<=dl_1=1) {dl_1=dl; bi_1=i;}}}

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

if (i>=p/2) {if (i===p/2) {dh_2=0,0; dl_2=0,0; ai_2=i; bi_2=i;}

if (dh>=dh_2=dh_2) {dh_2=dh; ai_2=i;}

if (dl<=dl_2=dl_2) {dl_2=dl; bi_2=i;}}}}}} if (dl<=dl_2=i; bi_2=i;}}}

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

lr0=bb; lrp=bb+aa*(i+p);

//===================================================

if (MathAbs(ai_1-ai_2)>MathAbs(bi_1-bi_2)) f=1;

if (MathAbs(ai_1-ai_2)<MathAbs(bi_1-bi_2)) f=2;

if (MathAbs(ai_1-ai_2)==MathAbs(bi_1-bi_2)) {if (MathAbs(dh_1-dh_2)=MathAbs(dl_1-dl_2)) f=2;}

//=================================================

se (f===1) {

para (n=0; n<=20; n+++) { f1=0;

for (i=0; i<=p; i++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1);

se (i==0 || i==p/2) dhm=0,0;

if (High-hai>dhm && i<p/2) {ai_1=i; f1=1;}

if (High-hai>dhm && i>=p/2) {ai_2=i; f1=1;} }

se (f==0) quebra;}

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

for (i=0; i<=p; i++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1);

dli=Low-hai;

if (i==0) dlm=0,0; if (dli<dlm) dlm=dli;}

ha0=High[ai_1]*(0-ai_2)/(ai_1-ai_2)+High[ai_2]*(0-ai_1)/(ai_2-ai_1);

hap=High[ai_1]*(p-ai_2)/(ai_1-ai_2)+High[ai_2]*(p-ai_1)/(ai_2-ai_1);

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

price_p1=hap;

price_p0=hap+dlm/2;

price_p2=hap+dlm;

price_01=ha0;

price_00=ha0+dlm/2;

price_02=ha0+dlm;

}

//=================================================

se (f===2) {

para (n=0; n<=20; n+++) { f1=0;

para (i=0; i<=p; i++) {lai=Low*(i-bi_2)/(bi_1-bi_2)+Low*(i-bi_1)/(bi_2-bi_1);

se (i==0 || i==p/2) dlm=0,0;

if (Low-lai<dlm && i<p/2) {bi_1=i; f1=1;}

if (Low-lai=p/2) {bi_2=i; f1=1;}}}

if (f==0) break;}

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

para (i=0; i<=p; i++) {lai=Low*(i-bi_2)/(bi_1-bi_2)+Low*(i-bi_1)/(bi_2-bi_1);

dhi=Highh-lai;

if (i==0) dhm=0.0; if (dhi>dhm) dhm=dhi;}

la0=Low*(0-bi_2)/(bi_1-bi_2)+Low*(0-bi_1)/(bi_2-bi_1);

lap=Low*(p-bi_2)/(bi_1-bi_2)+Low*(p-bi_1)/(bi_2-bi_1);

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

price_p1=lap;

price_p0=lap+dhm/2;

preço_p2=lap+dhm;

price_01=la0;

price_00=la0+dhm/2;

price_02=la0+dhm;

}

//===================================================================================

ObjectCreate("1"+sNome,2, 0,Time[p],price_p1,Time[0],price_01);

ObjectCreate("0"+sNome,2, 0,Time[p],price_p0,Time[0],price_00);

ObjectCreate("2"+sNome,2, 0,Time[p],price_p2,Time[0],price_02);

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

ObjectSet("1"+sName,OBJPROP_COLOR,col);

ObjectSet("1"+sNome,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet("0"+sNome,OBJPROP_COLOR,col);

ObjectSet("0"+sNome,OBJPROP_STYLE,STYLE_DOT);

ObjectSet("2"+sNome,OBJPROP_COLOR,col);

ObjectSet("2"+sNome,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet("0"+sNome,OBJPROP_WIDTH,1); // controlar a largura da linha

ObjectSet("1"+sName,OBJPROP_WIDTH,2);

ObjectSet("2"+sNome,OBJPROP_WIDTH,2);

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

ObjectSet("1"+sName,OBJPROP_TIME1,Time[p]);

ObjectSet("1"+sNome,OBJPROP_PRICE1,price_p1);

ObjectSet("1"+sNome,OBJPROP_TIME2,Time[0]);

ObjectSet("1"+sNome,OBJPROP_PRICE2,price_01);

ObjectSet("0"+sNome,OBJPROP_TIME1,Time[p]);

ObjectSet("0"+sNome,OBJPROP_PRICE1,price_p0);

ObjectSet("0"+sNome,OBJPROP_TIME2,Time[0]);

ObjectSet("0"+sNome,OBJPROP_PRICE2,price_00);

ObjectSet("2"+sNome,OBJPROP_TIME1,Time[p]);

ObjectSet("2"+sNome,OBJPROP_PRICE1,price_p2);

ObjectSet("2"+sNome,OBJPROP_TIME2,Time[0]);

ObjectSet("2"+sNome,OBJPROP_PRICE2,price_02);

//==================================================================

f=1; p1=p; p0=p; p2=p; fp=0;

//*************************************************************************************

retorno(0);}

//=====================================================================================

 
xerof123:
Obrigado omelete,

Tentei tudo o que pude, estou nisso há 6 dias sem parar e isso me bateu...

Por favor, você pode olhar o código aqui e me dizer por que estou recebendo o miserável "OrderModify error 1".

Tentei normalizar, tentei uma lógica diferente, até tentei oferecer-lhe uma cerveja.

Agradeço muito sua ajuda. Obrigado

Leia novamente o que eu escrevi - você está chamando a função Modificar() sem antes verificar se o(s) preço(s) precisa(m) ser modificado(s)...

 

omelete respondeu muito bem à sua pergunta. Devo dizer que o cara tem a paciência de um santo, eu o elogio.

Espero poder ilustrar melhor o que ele está fazendo a respeito disso.

O que você está basicamente dizendo agora é que se 2 > 1 então modifique (mude) X=2 mas o problema que você está tendo é que X já é igual a 2 então pedir para modificar (mude) é incorreto pois já é igual ao que você está tentando modificar.

Você só precisa verificar se ele não é igual ao que você está tentando modificar e só tentar modificá-lo se não for.

Algo mais claro?

Boa sorte.

Lux

 

primeira vez para usar a EA, precisa de ajuda.

Caros codificadoresguru,

Copiei o arquivo .mql4 para a pasta de especialistas e curei o Auto trading permitido na seção Opção, mas quando faço o teste de retorno, ele não gera nenhuma troca. Tentei alguns EAs gratuitos na rede, o problema aconteceu sempre. Posso ver que os dados do teste de retorno estavam carregando no gráfico, mas nenhuma troca, então no relatório todos os números são 0. Devo ter feito alguma coisa errada, espero que você possa ajudar. Obrigado de antemão.

Cumprimentos,

jzhai1994