Ajuda na codificação - página 490

 
tfi_markets:
Implementar; Indicador NonLag_Schaff_TrendCycle:

Olá Pro-Coders,

Será que alguém poderia me ajudar na implementação do indicador NonLag_Schaff_TrendCycle?

Indicador Externs:

Externo int FastLength = 23;

Externo int SlowLength = 50;

Externo int StcPeriod = 10;

Externo int MacdPrice = PRICE_CLOSE;

Externo bool Interpolar = verdadeiro;

bool MultiColor = verdadeiro;

Buffers indicadores:

IndicatorBuffers(8);

SetIndexBuffer(0,stcBuffer);

SetIndexBuffer(1,stcBufferUA);

SetIndexBuffer(2,stcBufferUB); SetIndexBuffer(2,stcBufferUB);

SetIndexBuffer(3,macdBuffer);

SetIndexBuffer(4,fastKBuffer);

SetIndexBuffer(5,fastDBuffer);

SetIndexBuffer(6,fastKKBuffer); SetIndexBuffer(6,fastKKBuffer);

SetIndexBuffer(7,fastKKBuffer); SetIndexBuffer(7,trend);

Eu tento fazer algo como:

double STC1_c=iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);

duplo STC2_c=iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar+1);

if((STC1_c>15 && STC2_c85 && STC2_c COMPRAR

if((STC1_c15)||(STC1_c85) -> SELL

Mas recebo uma mensagem de erro:

Erro: NonLag_Schaff_TrendCycle foi removido.

Acho que posso ter lido mal os amortecedores. Alguém tem alguma sugestão?

Agradecemos antecipadamente!

O primeiro parâmetro do ciclo de tendência nonlag schaf é "TimeFrame". Você está faltando na chamada iCustom. A chamada iCustom() deveria ser assim :

iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle",", FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);

 

Precisa de ajuda

Olá mladen

obrigado por suas ajudas passadas

tentei fazer este indicador, mas ele não aparece

então a pls me ajuda novamente

Obrigado de antemão

mtf_rsi_candle_all_in_in_one.mq4

Arquivos anexados:
 

Olá, Mladen,

muito obrigado por sua ajuda. Agora está funcionando

Com os melhores cumprimentos,

Thomas

mladen:
O primeiro parâmetro do ciclo de tendência schaf sem folga é "TimeFrame". Você está faltando na chamada iCustom. A chamada iCustom() deve ser assim :iCustom(Symbol(),0, "NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,0,bar);
 

Olá, Mladen!

Quando novas construções fazem a otimização há muito tempo.

Se voltar a construir 670, a velocidade de otimização é boa.

Qual poderia ser o problema?

experttsi.mq4

tsi.mq4

Arquivos anexados:
experttsi.mq4  2 kb
tsi.mq4  4 kb
 
QuantF:
Olá, Mladen!

Quando novas construções fazem a otimização por muito tempo.

Se voltar a construir 670, a velocidade de otimização é boa.

Qual poderia ser o problema?

experttsi.mq4

tsi.mq4

Os primeiros indicadores em TSI eliminam a linha que vai assim:

#propriedade estrita

Com essa linha não vai funcionar

______________

Para o resto: todos nós devemos ter esperança e rezar. A cada nova construção, os retrocessos são cada vez mais lentos (ver reclamação da construção 840). Não há muito a ser feito. Chegou-se ao ponto de que o teste visual de costas é mais rápido que o teste regular de costas (build 788 é o que estou usando) e não há lógica alguma nele

 

Codificadores Hi Pro,

por alguma razão minha EA está fechando posições, mas não abrindo novas, depois que a tendência mudou. Alguém poderia ter a gentileza de dar uma olhada?

Agradecemos antecipadamente!

//----------------------- LOAD INDICATORS FOR CLOSING POSITIONS

double STC0_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+2);

double STC1_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+1);

double STC2_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar);

// for(int i=0;i<OrdersTotal(); i++)

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!= MAGIC)continue;

if(OrderSymbol()!= s_symbol) continue;

//----------------------- CLOSE BUY CONDITION

if(STC1_c!=STC2_c) // Check trend

{

if(OrderType()==OP_BUY)

{

if(STC1_c>STC0_c&&STC2_c<STC1_c)

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);

if(buyClose==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

//----------------------- CLOSE SELL CONDITION

if(STC1_c!=STC2_c)

{

if(OrderType()==OP_SELL)

{

if(STC1_cSTC1_c)

{

bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);

if(sellClose == false)

{

ErrorCode = GetLastError();

ErrDesc = ErrorDescription(ErrorCode);

ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

}

}

Arquivos anexados:
trendcycle.jpg  97 kb
 
tfi_markets:
Codificadores Hi Pro,

por alguma razão minha EA está fechando posições, mas não abrindo novas, depois que a tendência mudou. Alguém poderia ter a gentileza de dar uma olhada?

Agradecemos antecipadamente!

//----------------------- LOAD INDICATORS FOR CLOSING POSITIONS

double STC0_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+2);

double STC1_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar+1);

double STC2_c=iCustom(Symbol(),0,"NonLag_Schaff_TrendCycle","",FastLength,SlowLength,StcPeriod,MacdPrice,Interpolate,MultiColor,0,bar);

// for(int i=0;i<OrdersTotal(); i++)

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!= MAGIC)continue;

if(OrderSymbol()!= s_symbol) continue;

//----------------------- CLOSE BUY CONDITION

if(STC1_c!=STC2_c) // Check trend

{

if(OrderType()==OP_BUY)

{

if(STC1_c>STC0_c&&STC2_c<STC1_c)

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);

if(buyClose==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

//----------------------- CLOSE SELL CONDITION

if(STC1_c!=STC2_c)

{

if(OrderType()==OP_SELL)

{

if(STC1_cSTC1_c)

{

bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);

if(sellClose == false)

{

ErrorCode = GetLastError();

ErrDesc = ErrorDescription(ErrorCode);

ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());

Print(ErrLog);

}

break;

} // mod

}

}

}

}

Nesse código não há nenhum código que abra uma posição(a função OrderSend() não é usada nela de forma alguma).

 
mladen:
Os primeiros indicadores em TSI excluem a linha que vai assim :

#propriedade rigorosa

Com essa linha não vai funcionar

______________

Para o resto: todos nós devemos ter esperança e rezar. A cada nova construção, os retrocessos são cada vez mais lentos (ver reclamação da construção 840). Não há muito a ser feito. Chegou-se ao ponto de que o teste visual de costas é mais rápido que o teste regular de costas (build 788 é o que estou usando) e não há lógica alguma nele

Obrigado pela resposta!

Claro. Eu fico em uma construção antiga.

 
mladen:
Nesse código não há nenhum código que abra uma posição (a função OrderSend() não é usada nela de forma alguma).

Olá, Mladen,

você está certo, por favor, encontre o código abaixo que se chama "OpenSell()".

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

//| OPEN BUY / OPEN SELL

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

//----------------------- BUY CONDITION

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

if(OrderType()==OP_SELL) break;

{

if(STC1!=STC2)

{

/*if(STC1STC1)BUY="true";*/

if(STC1STC1)

/*if((STC115) || (STC185)) // code for buy */

OpenBuy();

return(0);

}

openedOrders++;

}

//----------------------- SELL CONDITION

// if(STC1>STC0&&STC2<STC1)SELL="true";

//if((STC1>15 && STC285 && STC2<85)) // code for sell

if(STC1>STC0&&STC2<STC1) // code for sell

{

OpenSell();

return(0);

}

}

//----------------------- OPEN SELL

void OpenSell()

{

double lsStop = 0; if(sStopLoss>0) lsStop = NormalizeDouble(MarketInfo(s_symbol,MODE_BID)+sStopLoss *pPoint*pipMultiplier,digit);

double lsTake = 0; if(sTakeProfit>0) lsTake = NormalizeDouble(MarketInfo(s_symbol,MODE_BID)-sTakeProfit*pPoint*pipMultiplier,digit);

if(AccountFreeMargin()<(100*Lots)) { Print("We have no money. Free Margin = ",AccountFreeMargin()); return; }

// ECN

if(!EcnBroker)

dummyResult=OrderSend(s_symbol,OP_SELL,LotsOptimized(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,lsStop,lsTake,ExpertName,MAGIC,0,clOpenSell);

else

{

int sellTicket = OrderSend(s_symbol,OP_SELL,LotsOptimized(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,0,0,ExpertName,MAGIC,0,clOpenSell);

if(sellTicket >= 0)

bool sellOrderMod=OrderModify(sellTicket,OrderOpenPrice(),lsStop,lsTake,0,CLR_NONE);

if(sellOrderMod==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert=StringConcatenate("Modify Sell Order - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Bid: ",MarketInfo(s_symbol,MODE_BID)," Ticket: ",sellTicket," Stop: ",lsStop," Profit: ",lsTake);

Print(ErrLog);

}

}

}

 

caro mladen, mrtools esperando sua resposta para minhas dúvidas sobre o indicador fxultratrend no correio acima.

espero que você não me decepcione.

obrigado.