[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 924

 
O principal é definir a direção do pensamento... :)

Corrija-o apenas para que o homem não se perca... :)

Você poderia me corrigir, simplesmente?
 
T.H.C.:
Você poderia por favor me corrigir, apenas?

Eu dei um exemplo:

Se 5 é maior que 2, isso significa que 5 é maior que 2.

E comparar a diferença destes valores é se 5-2 é maior que zero, então 5 é maior que 2

Isso está claro? O ponto permanece - é tudo a mesma matemática de primeira classe, derivada apenas dela...

 
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;

static int KolBars;



if (Close[0]-Open[0] > Point && Close[1]-Open[1] > Point && Bars == KolBars)


{

KolBars=Bars ; // запоминаем кол-во бар при которых совершались действия

}




// Торговые критерии

// Критерий откр. Buy


Opn_B=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0);time=Time[1];}

}




Por favor, alguém me ajude, estou pedindo pela quarta vez. Passei 3 dias procurando uma resposta, o livro não diz como fazê-lo, não consegui encontrar nenhuma EA com tal condição. O assessor elementar abre uma posição de compra ao aparecer uma vela nova (desde que as 2 velas anteriores sejam verdes), e fecha a posição no fechamento da vela, na qual a posição foi aberta, ou no fechamento da vela seguinte.

A que você vê acima abre uma posição toda vez que uma nova vela aparece, sem reagir aos critérios de abertura, e eu não sei como fechar a posição, não consegui encontrá-la no tutorial ou nos fóruns.

 
artmedia70:

Classifique-o... :)

E não se esqueça da existência do StopLev - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);

Verificar a distância mínima para a definição de paradas e tomadas, de modo que não seja inferior a este valor


Na verdade eu o compus corretamente, mas... "StLev=MarketInfo(Symbol(),MODE_STOPLEVEL)"; não sei onde colocá-lo,
agora...

O problema é que estou constantemente trabalhando (não posso instalar o programa mql4 aqui, então tenho que fazer tudo isso na minha cabeça

stopLoss duplo externo=100,0;
takeProfit duplo externo=100,0;
double Lots externo=0,01;
extern int total;
extern int SetOrderDistance=50;

int start() {

int pt,dg,StLev;
double Price_1,Price_2,min,max,pa,pb;
RefreshRates();

pt=MarketInfo(Symbol(),MODE_POINT);
dg=MarketInfo(Symbol(),MODE_DIGITS);
pa=MarketInfo(Symbol(),MODE_ASK);
pb=MarketInfo(Symbol(),MODE_BID);
Price_1=pb;
Price_2=pa;
min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdensTotal();
double slB=NormalizeDouble(pa-StopLoss*pt,dg);
double tpB=NormalizeDouble(pa+TakeProfit*pt,dg);
double slS=NormalizeDouble(pb+StopLoss*pt,dg);
double tpS=NormalizeDouble(pb-TakeProfit*pt,dg)

if(total<1) {

if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,pa,5,slB,tpB, "My order#,16384,0,Green);

if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,pb,5,slS,tpS, "My order#,16384,0,Green);
}
}retorno(0);

 
T.H.C.:

Acabei de esboçá-lo. Pode ser uma bagunça.

#define Mag 464564564
extern double Lot=0.01;

int start()
{
int Total;

for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2&&OrderMagicNumber()==Mag)
       {Total++;
       if(Volume[0]<4)close();
       }

if(Total!=0)return;
if(Close[1]>Open[1]&&Close[2]>Open[2]&&Volume[0]>4)bue();
if(Close[1]<Open[1]&&Close[2]<Open[2]&&Volume[0]>4)sell();

}
void bue()
{
OrderSend(Symbol(),0,Lot,NormalizeDouble(Ask,Digits),5,0,0,0,Mag);
}
//----
void sell()
{
OrderSend(Symbol(),1,Lot,NormalizeDouble(Bid,Digits),5,0,0,0,Mag);
}
void close()
{
double pr;if(OrderType()==0)pr=Bid;if(OrderType()==1)pr=Ask;
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(pr,Digits),5);
}
 
Techno:

Acabei de esboçá-lo. Pode ser um pouco confuso.

Muito obrigado, muito útil.

Como você aprendeu a programar? Por onde você começou?

 
T.H.C.:

Muito obrigado, muito útil.

Como você aprendeu a programar? Por onde você começou?

Eu estudei a partir de livros didáticos, começando com C++
 
C+++ é muito diferente do mql?
 
T.H.C.:
C+++ é muito diferente do mql?
exceto por algumas características (orientação comercial) Mql é apenas uma cópia altamente despojada de c++
 
Techno:
exceto por algumas características (orientação comercial) Mql é apenas uma cópia altamente despojada de c++
Oh, obrigado pelos conselhos e pelo tempo que você me deu