[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 75
Você pode me dizer como fazer castiçais na tabela de preços para serem coloridos de verde quando o Awesome Oscillator e o Acceleration/Deceleration Oscillator são verdes, para serem coloridos de vermelho quando o Awesome Oscillator e o Acceleration/Deceleration Oscillator são vermelhos, e quando os indicadores são de cores diferentes, os castiçais devem ser cinza?
gmMarat писал(а)>> Você pode me dizer qual código deve ser escrito para fechar um negócio, para que o próximo negócio possa ser aberto somente no próximo bar?
Então a questão é: Como você fecha o negócio? É uma parada (que é mais complicada), ou fechamo-la nós mesmos? Se nós mesmos a fecharmos, é muito mais fácil.
Nosferatu писал(а)>> Você pode me dizer como fazer castiçais na tabela de preços para serem coloridos de verde quando o Awesome Oscillator e o Acceleration/Deceleration Oscillator são verdes, para serem coloridos de vermelho quando o Awesome Oscillator e o Acceleration/Deceleration Oscillator são vermelhos, e quando os indicadores são de cores diferentes, para fazer castiçais de cinza?
Nunca pintei um candelabro, mas definitivamente vi este peru na base. Realmente, há cerca de quatro meses. Procure-o.
Então a questão é: Como você fecha o negócio? É uma parada (que é mais complicada), ou fechamo-la nós mesmos? Se nós mesmos a fecharmos, é muito mais fácil.
Os negócios são fechados em Take Profit ou Stop Loss!
Limitações do compilador. Eu gostaria de saber sobre restrições em arrays (quantos arrays ou número total de elementos ou algo mais como memória alocada), e sobre o número de variáveis globais no sentido de variáveis superglobais.
Decidi escrever a um especialista. Levou um Stoch para isso. Acho que deveria ter apenas um pedido, mas venderá acima de 80 e fechará abaixo de 50. Também acrescentei StopLoss a fim de reduzir as perdas. Eu o testei. O especialista parece estar trabalhando, mas às vezes o StopLosses é levado um após o outro. Portanto, decidi mudar as condições comerciais após a primeira Perda para torná-las significativamente diferentes das iniciais. Para este fim, introduzi a função isCloseLastPosByStop que tirei da Kima e gostei. Se o Loss é trabalhado, ele envia sinais e escreve na revista; após o sinal if(SSL===verdadeiro) eu estabeleço novas condições de venda. Eu o escrevi, compilei, lancei - funciona, mas também é preciso váriosLossO em alguns lugares seguidos para fazê-lo parar. Como não tenho muita experiência em MQL4, não sei o que está errado. Por favor, me ajude de qualquer maneira que você possa..... nós não somos daqui...... E talvez alguém me diga como implementar esta idéia de outra maneira. Obrigado de antemão, este é um bom lugar, eu nunca fui sem aconselhamento qualificado....
#link da propriedade "http://www.сайта.net" //---- parâmetros de entrada int int int externo MagicNamber=88881; externo int K_per=30; externo int D_per=8; externo int Slow=10; Lotes duplos externos=1,0; StopLoss duplo externo=300; duplo externo SSL=0;
int start() { int cnt=0, bilhete, total; duplo StochK_0, // Valor da linha K StochD_1, // valor da linha D SL=StopLoss; isCloseLastPosByStop(); se (Bars<100) { Impressão ("barras com menos de 100"); retorno(0); } StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D total=OrdensTotal(); if(total<1) if ((StochK_0>StochD_1) && StochD_1 > 80) // condição de venda { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); if(bilhete>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido de venda aberto : ",OrderOpenPrice()) } else Print("Error opening SELL order : ",GetLastError())); retorno(0); } for(cnt=0;cnt<total;cnt++) { RefreshRates(); OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // esta é uma posição aberta? OP_BUY ou OP_SELL OrderSymbol()==Symbol()) // combinação de ferramentas? { if(OrderType()==OP_SELL) // posição está aberta SSL=isCloseLastPosByStop(); if(SSL===verdadeiro ) { Imprimir("StopLoss"); } total=OrdensTotal(); if(total<1) se ((StochK_0<StochD_1) && StochK_0 < 50) // condição de venda se o StopLoss for acionado { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); if(bilhete>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido de venda aberto : ",OrderOpenPrice()) } else Print("Error opening SELL order : ",GetLastError())); retorno(0); } for(cnt=0;cnt<total;cnt++) { RefreshRates(); OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // esta é uma posição aberta? OP_BUY ou OP_SELL OrderSymbol()==Symbol()) // combinação de ferramentas? { if(OrderType()==OP_SELL) // posição está aberta { if(StochK_0>StochD_1 && StochD_1 < 50) // condição de fechamento { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // posição fechada retornar(0); // sair }}}}}}} //___utilizador fu-ya bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) { data/hora t; duplo ocp, osl; int dg, i, j=-1, k=OrdersHistoryTotal();
se (sy=="0") sy=Símbolo(); para (i=0; i<k; i++) { se (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { se (OrderSymbol()==sy ||| sy==") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { se (op<0 || OrderType()==op) { se (mn<0 || OrderMagicNumber()==mn) { se (t<OrderCloseTime()) { t=OrderCloseTime(); j=i; }}}}}}} se (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { dg=MarketInfo(sy, MODE_DIGITS); if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; caso contrário dg=2; ocp=NormalizeDouble(OrderClosePrice(), dg); osl=NormalizeDouble(OrderStopLoss(), dg); if (ocp===osl) return(True); } retorno(Falso); }
Você pode me dizer qual código deve ser escrito para fechar um negócio, para que o próximo negócio possa ser aberto somente no próximo bar?
Então a questão é: Como você fecha o negócio? É uma parada (que é mais complicada), ou fechamo-la nós mesmos? Se nós mesmos a fecharmos, é muito mais fácil.
Você pode me dizer como fazer castiçais na tabela de preços para serem coloridos de verde quando o Awesome Oscillator e o Acceleration/Deceleration Oscillator são verdes, para serem coloridos de vermelho quando o Awesome Oscillator e o Acceleration/Deceleration Oscillator são vermelhos, e quando os indicadores são de cores diferentes, para fazer castiçais de cinza?
Nunca pintei um candelabro, mas definitivamente vi este peru na base. Realmente, há cerca de quatro meses. Procure-o.
Então a questão é: Como você fecha o negócio? É uma parada (que é mais complicada), ou fechamo-la nós mesmos? Se nós mesmos a fecharmos, é muito mais fácil.
Os negócios são fechados em Take Profit ou Stop Loss!
Pergunta.
Eu tenho um indicador que escreve uma citação para a ferramenta como esta - 2321.50000000
Como posso me livrar de zeros extras?
Muito bom em escrever aqui especialistas. http://www.vedikhin.ru/2006/06/expert-advisors-overview.html
E que os deuses me perdoem, está no formato Wordov .
Ajude-me também.
Limitações do compilador. Eu gostaria de saber sobre restrições em arrays (quantos arrays ou número total de elementos ou algo mais como memória alocada), e sobre o número de variáveis globais no sentido de variáveis superglobais.
Olá a todos.
Decidi escrever a um especialista. Levou um Stoch para isso. Acho que deveria ter apenas um pedido, mas venderá acima de 80 e fechará abaixo de 50. Também acrescentei StopLoss a fim de reduzir as perdas. Eu o testei. O especialista parece estar trabalhando, mas às vezes o StopLosses é levado um após o outro. Portanto, decidi mudar as condições comerciais após a primeira Perda para torná-las significativamente diferentes das iniciais. Para este fim, introduzi a função isCloseLastPosByStop que tirei da Kima e gostei. Se o Loss é trabalhado, ele envia sinais e escreve na revista; após o sinal if(SSL===verdadeiro) eu estabeleço novas condições de venda. Eu o escrevi, compilei, lancei - funciona, mas também é preciso vários LossO em alguns lugares seguidos para fazê-lo parar. Como não tenho muita experiência em MQL4, não sei o que está errado. Por favor, me ajude de qualquer maneira que você possa..... nós não somos daqui...... E talvez alguém me diga como implementar esta idéia de outra maneira. Obrigado de antemão, este é um bom lugar, eu nunca fui sem aconselhamento qualificado....
#propriedade copyright "Alex
#link da propriedade "http://www.сайта.net"//---- parâmetros de entrada
int int int externo MagicNamber=88881;
externo int K_per=30;
externo int D_per=8;
externo int Slow=10;
Lotes duplos externos=1,0;
StopLoss duplo externo=300;
duplo externo SSL=0;
//+------------------------------------------------------------------+
int start(){
int
cnt=0,
bilhete,
total;
duplo
StochK_0, // Valor da linha K
StochD_1, // valor da linha D
SL=StopLoss;
isCloseLastPosByStop();
se (Bars<100)
{
Impressão ("barras com menos de 100");
retorno(0);
}
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D
total=OrdensTotal();
if(total<1)
if ((StochK_0>StochD_1) && StochD_1 > 80) // condição de venda
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green);
if(bilhete>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Imprimir("Pedido de venda aberto : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError()));
retorno(0);
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // esta é uma posição aberta? OP_BUY ou OP_SELL
OrderSymbol()==Symbol()) // combinação de ferramentas?
{
if(OrderType()==OP_SELL) // posição está aberta
SSL=isCloseLastPosByStop();
if(SSL===verdadeiro )
{
Imprimir("StopLoss");
}
total=OrdensTotal();
if(total<1)
se ((StochK_0<StochD_1) && StochK_0 < 50) // condição de venda se o StopLoss for acionado
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green);
if(bilhete>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Imprimir("Pedido de venda aberto : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError()));
retorno(0);
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // esta é uma posição aberta? OP_BUY ou OP_SELL
OrderSymbol()==Symbol()) // combinação de ferramentas?
{
if(OrderType()==OP_SELL) // posição está aberta
{
if(StochK_0>StochD_1 && StochD_1 < 50) // condição de fechamento
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // posição fechada
retornar(0); // sair
}}}}}}}
//___utilizador fu-ya
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
data/hora t;
duplo ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();
se (sy=="0") sy=Símbolo();
para (i=0; i<k; i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
se (OrderSymbol()==sy ||| sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
se (op<0 || OrderType()==op) {
se (mn<0 || OrderMagicNumber()==mn) {
se (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}}}}}}}
se (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; caso contrário dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp===osl) return(True);
}
retorno(Falso);
}
Pergunta.
Eu tenho um indicador que escreve uma citação para a ferramenta como esta - 2321.50000000
Como se livrar de zeros extras?
O operador DoubleToStr() irá lhe ajudar.