Ajuda na codificação - página 202

 

Incapaz de mover a saída de texto na tabela sem erros????

A saída de texto de informação da faixa atual é coberta por velas de preço. Minhas habilidades de codificação são inadequadas, com cada tentativa terminando em erros. Estou apenas tentando mover a saída de texto no gráfico, como ilustrado. Alguém pode me ajudar? Muito obrigado antecipadamente!!!ant-gubreakout.mq4

Arquivos anexados:
 
daytrade5:
O texto de informação da faixa atual é coberto por velas de preço. Minhas habilidades de codificação são inadequadas, com cada tentativa terminando em erros. Estou apenas tentando mover a saída de texto no gráfico, como ilustrado. Alguém pode me ajudar? Muito obrigado antecipadamente!!!ant-gubreakout.mq4

daytrade5

Quando usamos metatrader 4 não podemos escolher a âncora para objetos do tipo texto (metatrader 4 sempre usa uma âncora fixa para tais objetos que não podemos mudar). Anexando uma versão que modifica a posição do texto (use TEXT_OFFSET para isso) mas às vezes você terá que mudar seu valor e o alinhamento não é 100% perfeito.

Arquivos anexados:
 
mladen:
daytrade5 Quando usamos metatrader 4 não podemos escolher a âncora para objetos do tipo texto (o metatrader 4 sempre usa uma âncora fixa para tais objetos que não podemos mudar). Anexando uma versão que modifica a posição do texto (use TEXT_OFFSET para isso) mas às vezes você terá que mudar seu valor e o alinhamento não é 100% perfeito.

OK....- muito obrigado. Eu nunca teria descoberto isso.

 

Boa amarração, favor ajudar com este mq4 de alerta de pedido - quando um pedido é fechado, ele enviará um alerta, mas agora ele envia para cada símbolo por gráfico aberto no perfil em vez de apenas o símbolo relevante acionado.

Cordiais cumprimentos,

Arquivos anexados:
 
zigflip:
Boa amarração, por favor, ajude com este alerta de ordem mq4 - quando um pedido é fechado, ele enviará um alerta, mas agora ele envia para cada símbolo por gráfico aberto no perfil, em vez de apenas o símbolo relevante acionado.

zigflip

Experimente agora

Arquivos anexados:
 

não pode descobrir como obter os valores de 4 cci

Olá,

tenho outra pergunta, o primeiro problema que resolvi. obrigado por este mladen

encontrei os 4 cci aqui por mladen e gosto muito, sei que pinta de novo mas ainda funciona muito bem para mim.

Estou tentando colocar os 4 valores em outro indicador feito por mim, mas não consigo descobrir como.

tentei a linha bool da página anterior com os valores dos 4cci, mas não funcionou para mim.

Acho que existe uma solução fácil para códigos experientes, mas já gasto muito tempo e não consigo descobrir como.

obrigado em conselho

Bob

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

#property copyright "mladen"

#link da propriedade "www.forex-tsd.cm"

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

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 8

#indicador de propriedade_color1 LimeGreen

#indicador de propriedade_color2 PaleVioletRed

#indicador de propriedade_color3 LimeGreen

#indicador de propriedade_color4 PaleVioletRed

#indicador de propriedade_color5 LimeGreen

#Indicador de propriedade_color6 PaleVioletRed

#indicador de propriedade_color7 LimeGreen

#Indicador de propriedade_color8 PaleVioletRed

#indicador de propriedade_mínimo 0

#indicador de propriedade_máximo 5

//

//

//

//

//

String externo TimeFrame1 = "Current time frame";

String externo TimeFrame2 = "next1";

String externo TimeFrame3 = "next2";

String externo TimeFrame4 = "next3";

extern int Period_CCI = 24;

UniqueID da cadeia externa = "4 inclinações da CCI TimeFrame";

Exterior int LinesWidth = 0;

Rótulos de cor externaCor = Cinza Escuro;

Rótulos externos intHorizontalShift = 5;

Rótulos externos duplosVerticalShift = 1,5;

alertas de bool externoOn = falso;

alertas int externosLevel = 3;

alertas de bool externoMensagem = FALSO;

alertas de bool externoSom = falso;

alertas de bool externoEmail = falso;

//

//

//

//

//

duplo gosc1u[];

duplo gosc1d[];

duplo gosc2u[];

duplo gosc2d[];

duplo gosc3u[];

duplo gosc3d[];

duplo gosc4u[];

duplo gosc4d[];

int timeFrames[4];

bool returnBars;

string indicatorFileName;

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

//

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

//

//

//

//

//

int init()

{

SetIndexBuffer(0,gosc1u);

SetIndexBuffer(1,gosc1d);

SetIndexBuffer(2,gosc2u);

SetIndexBuffer(3,gosc2d);

SetIndexBuffer(4,gosc3u);

SetIndexBuffer(5,gosc3d); SetIndexBuffer(5,gosc3d);

SetIndexBuffer(6,gosc4u);

SetIndexBuffer(7,gosc4d); SetIndexBuffer(7,gosc4d);

indicadorNomeDeFileName = WindowExpertName();

returnBars = (TimeFrame1=="returnBars"); if (returnBars) return(0);

//

//

//

//

//

para (int i=0; i<8; i++)

{

SetIndexStyle(i,DRAW_ARROW,EMPTY,LinesWidth); SetIndexArrow(i,110);

}

timeFrames[0] = stringToTimeFrame(TimeFrame1);

timeFrames[1] = stringToTimeFrame(TimeFrame2);

timeFrames[2] = stringToTimeFrame(TimeFrame3);

timeFrames[3] = stringToTimeFrame(TimeFrame4);

alertsLevel = MathMin(MathMax(alertsLevel,3),4);

IndicatorShortName(UniqueID);

return(0);

}

int deinit()

{

para (int t=0; t<4; t++) ObjectDelete(UniqueID+t);

return(0);

}

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

//

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

//

//

//

//

//

dupla tendência[][6];

#define _up 0

#define _dn 1

#define _hl1 2

#define _hl2 3

#define _hl3 4

#define _hl4 5

int start()

{

int i,r,count,counted_bars=IndicatorCounted();

if(counted_bars < 0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

if (returnBars) { gosc1u[0] = limite+1; return(0); }

if (timeFrames[0] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[0],indicatorFileName, "returnBars",0,0)*timeFrames[0]/Period()));

if (timeFrames[1] != Período()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[1],indicadorNomeDeCampo, "returnBars",0,0)*timeFrames[1]/Period())));

if (timeFrames[2] != Período()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[2],indicadorNomeDeCampo, "returnBars",0,0)*timeFrames[2]/Period())));

if (timeFrames[3] != Período()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[3],indicadorNomeDeCampo, "returnBars",0,0)*timeFrames[3]/Period())));

if (ArrayRange(trend,0)!=Bars) ArrayResize(trend,Bars);

//

//

//

//

//

bool inicializado = falso;

se (!inicializado)

{

inicializados = verdadeiros;

int window = WindowFind(UniqueID);

para (int t=0; t<4; t++)

{

etiqueta de string = timeFrameToString(timeFrames[t]);

ObjectCreate(UniqueID+t,OBJ_TEXT,window,0,0);

ObjectSet(UniqueID+t,OBJPROP_COLOR,LabelsColor);

ObjectSet(UniqueID+t,OBJPROP_PRICE1,t+LabelsVerticalShift);

ObjectSetText(UniqueID+t,label,8, "Arial");

}

}

para (t=0; t<4; t++) ObjectSet(UniqueID+t,OBJPROP_TIME1,Time[0]+Period()*LabelsHorizontalShift*60);

//

//

//

//

//

for(i = limite, r=Bars-i-1; i >= 0; i--,r++)

{

tendência[r][_up] = 0;

tendência[r][_dn] = 0;

tendência[r][_hl1] = tendência[r-1][_hl1];

tendência[r][_hl2] = tendência[r-1][_hl2];

tendência[r][_hl3] = tendência[r-1][_hl3];

tendência[r][_hl4] = tendência[r-1][_hl4];

para (int k=0; k<4; k++)

{

int y = iBarShift(NULL,TimeFrames[k],Time);

double cciNow = iCCI(NULL, timeFrames[k], Period_CCI, PRICE_TYPICAL, y);

duplo cciPre = iCCI(NULL, timeFrames[k], Period_CCI, PRICE_TYPICAL, y+1);

if (cciNow>cciPre) trend[r][k+2] = 1;

if (cciNow<cciPre) trend[r][k+2] = -1;

mudar (k)

{

caso 0 : if (trend[r][k+2]==1) { gosc1u = k+1; gosc1d = EMPTY_VALUE;} else { gosc1d = k+1; gosc1u = EMPTY_VALUE; } break;

caso 1 : if (trend[r][k+2]==1) { gosc2u = k+1; gosc2d = EMPTY_VALUE;} else { gosc2d = k+1; gosc2u = EMPTY_VALUE; } break;

caso 2 : if (trend[r][k+2]==1) { gosc3u = k+1; gosc3d = EMPTY_VALUE;} else { gosc3d = k+1; gosc3u = EMPTY_VALUE; } break;

caso 3 : if (trend[r][k+2]==1) { gosc4u = k+1; gosc4d = EMPTY_VALUE;} else { gosc4d = k+1; gosc4u = EMPTY_VALUE; } break;

}

se (tendência[r][k+2]==1)

tendência[r][_up] += 1;

outra tendência[r][_dn] += 1;

}

}

gerenciarAlertas();

retornar(0);

}

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

//|

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

//

//

//

//

//

alertas de gerenciamento de vazios()

{

se (alertasOn)

{

int queBar = Bars-1;

if (trend[whichBar][_up] >= alertsLevel ||| trend[whichBar][_dn] >= alertsLevel)

{

if (trend[whichBar][_up] >= alertsLevel) doAlert("up" ,trend[whichBar][_up])

if (trend[whichBar][_dn] >= alertsLevel) doAlert("down",trend[whichBar][_dn]));

}

}

}

//

//

//

//

//

vazio doAlert(string do What, int howMany)

{

string estática anteriorAlert="nada";

data estática hora anteriorTempo anterior;

mensagem de string;

if (previousAlert != do What ||| previousTime != Tempo[0]) {

anteriorAlerta = fazer o quê;

previousTime = Tempo[0];

//

//

//

//

//

mensagem = Símbolo()+" em "+TimeToStr(TimeLocal(),TIME_SECONDS)+" "+howMany+" os quadros de tempo das tendências MA estão alinhados "+doWhat;

if (alertasMensagem) Alerta(mensagem);

if (alertasEmail) SendMail(Symbol()+" 4 time frame MA trends",message);

if (alertasSom) PlaySound("alert2.wav");

}

}

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

//

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

//

//

//

//

//

string sTfTable[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};

int iTfTable[] = {1,5,15,30,30,60,240,1440,10080,43200};

//

//

//

//

//

int toInt(valor duplo) { return(valor); }

int stringToTimeFrame(string tfs)

{

tfs = stringUpperCase(tfs);

int max = ArraySize(iTfTable)-1, adicionar=0;

int nxt = (StringFind(tfs, "NEXT1")>-1); if (nxt>0) { tfs = ""+Periodo(); add=1; }

nxt = (StringFind(tfs, "NEXT2")>-1); if (nxt>0) { tfs = ""+Periodo(); add=2; }

nxt = (StringFind(tfs, "NEXT3")>-1); if (nxt>0) { tfs = ""+Periodo(); add=3; }

//

//

//

//

//

para (int i=max; i>=0; i--)

if (tfs==sTfTable || tfs===""+iTfTable) return(MathMax(iTfTable[toInt(MathMin(max,i+add))],Period()));

return(Period());

}

tempo de fioFrameToString(int tf)

{

para (int i=ArraySize(iTfTable)-1; i>=0; i--)

se (tf===iTfTable) retornar(sTfTable);

return("");

}

//

//

//

//

//

string stringUpperCase(string str)

{

string s = str;

para (comprimento int = StringLen(str)-1; comprimento>=0; comprimento--)

{

int char = StringGetChar(s, comprimento);

if((char > 96 && char 223 && char < 256))

s = StringSetChar(s, comprimento, char - 32);

caso contrário se(char > -33 && char < 0)

s = StringSetChar(s, comprimento, char + 224);

}

devolução(ões);

}
 
BobMorane1000:
Olá,

tenho outra pergunta, o primeiro problema que resolvi. obrigado por este mladen

encontrei os 4 cci aqui por mladen e gosto muito, sei que pinta de novo mas ainda funciona muito bem para mim.

Estou tentando colocar os 4 valores em outro indicador feito por mim, mas não consigo descobrir como.

tentei a linha bool da página anterior com os valores dos 4cci, mas não funcionou para mim.

Acho que existe uma solução fácil para códigos experientes, mas já gasto muito tempo e não consigo descobrir como.

obrigado em conselho

Bob

BobMorane1000

Por que você simplesmente não usa 4 vezes a chamada iCCI() (será muito mais simples até mesmo em código)?

 

você está certo, eu vou fazer isso.

mais uma vez obrigado

 

pls alguém pode me ajudar a adicionar setas na cruz deste estochaastic

Arquivos anexados:
 

[ATTACH]187655

Oi, eu preciso de ajuda:

Tenho uma bela Trendindicatoe que está colorindo as velas de verde e lendo para a tendência. Mas tem um bug: não é possível que as cores permaneçam as mesmas quando se muda o prazo. Mas pior é o fato de que as perucas dificilmente são vistas e eu não posso mudar isso.

Alguém poderia dar uma olhada, por favor?

Muito obrigado. Eu anexei o indicador

Arquivos anexados:
t3_thv.ex4  5 kb
Razão: