[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 356

 

outra pergunta como adicionar indicadores ao MT4 ?


obrigado

 
Garifyanov:

outra pergunta como adicionar indicadores ao MT4 ?


obrigado

A Documentação e o Tutorial não ajudam?
 
artmedia70:
A Documentação e o Livro didático não ajudam?


Obrigado, vou verificar agora.
 
Olá, não consigo encontrar um indicador que desenhe linhas horizontais com dois dias de duração no alto, no baixo de uma vela de tempo conhecida. Me acerte com um link ou talvez com um esboço de um indicador.
 

Você pode me dizer por que a EA não está negociando? Coloque em demonstração (sorrisos) - não funciona. Parece ter sido removida a função no início que só permite a comercialização quando se testa.

Lotes duplos externos=1,0;

int externo Início=10;

comprimento externo interno=4;

externo int EOD=24;

Pips externos internos=5;

externo int StopLoss=50;

Exterior int BreakEven=30;

Externo interno TakeProfit=80;


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

//| função de início especializado |

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

int start()

{

//----

int i,Ticket,LastOrderTime,StartTime,EODTime,Bought=0,Sold=0;

Double EntryLong,EntryShort,SLLong,SLShort,TPLong,TPShort;

//Configurações

se (Symbol()=="EURUSD"){

Início=10;

Comprimento=4;

EOD=24;

Pips=5;

StopLoss=50;

BreakEven=30;

TakeProfit=80;

}

caso contrário se (Symbol()=="GBPUSD"){

Início=10;

Comprimento=4;

EOD=24;

Pips=5;

StopLoss=70;

BreakEven=40;

TakeProfit=120;

}

senão {

Início=10;

Comprimento=4;

EOD=24;

Pips=5;

StopLoss=50;

BreakEven=30;

TakeProfit=80;

}


//Contar tempo

if(Hora()>=Begin-1)

{

StartTime= StrToTime(Begin+":00");

if(DayOfWeek()==5) EODTime = MathMin(StrToTime("22:55"),StrToTime(EOD+":00"))

ou EODTime = StartTime+(EOD-Begin)*3600-60;

}

/Configuração de ordens

if(CurTime()>= StartTime && CurTime()<StartTime+300){

//Determinar o alcance

EntryLong =High[Highest(NULL,0,MODE_HIGH,Length*60/Period(),0)]+(Pips+MarketInfo(Symbol(),MODE_SPREAD))*Ponto;

EntryShort =Low [Mais baixo (NULL,0,MODE_LOW, Length*60/Period(),0)]-Pips*Point;

SLLong =MathMax(EntryLong-StopLoss*Point,EntryShort);

SLShort =MathMin(EntryShort+StopLoss*Point,EntryLong);

TPLong =EntryLong+TakeProfit*Point;

TPShort =EntryShort-TakeProfit*Point;

//Controle de ordens

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

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUY)) Comprado++;

if(Bought>1){ //mais de 1 ordem de compra

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket();

}


if(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLL)) Vendido++;

if(Vendido>1){ //mais de 1 ordem de venda

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());

}

}

if(Bought==0){ // sem ordem de compra

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,EntryLong,3,SLLong,TPLong,NULL,0,0,Green);

if(Ticket<0 && GetLastError()==130)

Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SLLong,TPLong,NULL,0,0,Green);

GlobalVariableSet("LastOrderTime",OrderOpenTime())

}

if(Sold==0){ // sem ordem de venda

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,EntryShort,3,SLShort,TPShort,NULL,0,0,Green);

if(Ticket<0 && GetLastError()==130)

Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SLShort,TPShort,NULL,0,0,Green);

GlobalVariableSet("LastOrderTime",OrderOpenTime())

}

}

//Manejar ordens abertas

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

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(CurTime()<=GlobalVariableGet("LastOrderTime")+10) Sleep(10000);

//uzavósenín pozic na konci dne

if(CurTime()>=EODTime){

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

if(OrderSymbol()==Symbol() && OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket());

if(OrderSymbol()==Symbol() && OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());

GlobalVariableSet("LastOrderTime",CurTime());

}

//move na BE se lucro>BE

senão {

if(OrderSymbol()==Symbol() && OrderType()==OP_BUY){

if(High[0]-OrderOpenPrice()>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);

GlobalVariableSet("LastOrderTime",CurTime());

}

}

if(OrderSymbol()==Symbol() && OrderType()==OP_SELL){

if(OrderOpenPrice()-Low[0]>=BreakEven*Point && OrderStopLoss()!=OrderOpenPrice()){

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);

GlobalVariableSet("LastOrderTime",CurTime());

}

}

}

}

//Resetar variáveis globais na EOD

if(CurTime()>=EODTime) GlobalVariablesDeleteAll();

retorno(0);

}

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

 
Bom dia a todos. Instalei o indicador MT4 FIFTYZNAK. iMA dá 4 dígitos, mas como obter 5 dígitos? Por favor, me ajude a entender.
 
MK07:
Bom dia a todos. Instalei o indicador MT4 FIFTY-ZNAK. iMA dá 4 sinais, mas como receber 5 sinais? Por favor, ajude a entender.

Tem um valor com cinco dígitos. Para ver seu valor, use

string DoubleToStr( valor duplo , dígitos int )

Converter um valor numérico em uma cadeia de texto contendo uma representação de caracteres de um número em um formato de precisão especificado.

Parâmetros:


valor - Valor do ponto flutuante.

dígitos - Número de dígitos após a vírgula decimal (0-8).


Exemplo:
  string value=DoubleToStr(1.28473418, 5);
  // содержимое строки value - "1.28473"
 
laveosa:

Romano ... Prazer em vê-lo. Tentei, não funciona, não entendo o que está errado, visualmente há uma história para o período acima, mas quando testado, não há??? :/

Pressione F2 e faça o download até ficar inconsciente! ;))
 

Como você indica ao programa que a barra tocou a média móvel? Você não precisa de um valor máximo ou mínimo, você precisa mostrar um toque.

 
Forexman77:

Como você indica ao programa que a barra tocou a média móvel? Você não precisa de um valor máximo ou mínimo, você precisa mostrar um toque.

O máximo (corrente) Alto[0] está acima do MA, e consequentemente o mínimo (corrente) Baixo[0] está abaixo do MA (como eu entendo, estamos falando da 0ª barra).