[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 149
Caras, onde está o erro olha....a então abre várias posições no sinal, e às vezes falha o sinal....a então depois de acionar uma parada ou lucro sobre o par, abre uma nova....
Look.... conditions: cruzamento simultâneo do RSI com os períodos 14 e 17 do nível 30 de baixo para cima e tendência 70 de cima para baixo...
Caras, onde está o erro olha....a então abre várias posições no sinal, e às vezes perde os sinais....a então depois de acionar uma parada ou lucro sobre o par, abre uma nova....
Look.... conditions: cruzamento simultâneo do RSI com os períodos 14 e 17 do nível 30 de baixo para cima e tendência 70 de cima para baixo...
if (( diRSI1<30 && diRSI2<30)){
OpenBuy();
return(0);
}
if (diRSI1>70 && diRSI2>70){
OpenSell();
return(0);
}
Eu o faria dessa maneira e também definiria uma parada de compra e não uma venda.
todem: eu o faria dessa maneira e eu definiria uma parada de compra e não uma venda
Ha... seu caminho, com qualquer valor inferior a 30 abre uma!!!!!!! isto é inaceitável.... eu preciso de uma cruz de 30 níveis de baixo para cima!!!!!
e os valores
A1=diRSI1;
A2=diRSI2;
estes são apenas os valores de RSI da abertura da vela anterior.... eles só têm que ser menos de 30 !!! tudo está correto aqui ... Eu só não entendo porque as trocas são abertas em poucas peças a um sinal!
Ha... seu caminho qualquer valor inferior a 30 abre uma!!!!!!! isto é inaceitável.... eu preciso de uma cruz de 30 níveis de baixo para cima!!!!!
e os valores
estes são apenas os valores RSI da vela de abertura anterior.... eles só têm que ser menos de 30 !!! tudo está correto aqui ... Eu só não entendo porque as negociações são abertas várias vezes em um sinal !
Se você quiser que ele abra uma negociação, não pode fazê-lo abrir 386, é muito mais rápido do que isso, o que pode executar um milhão de negociações em 1 segundo. O controle da abertura de um comércio é feito através do controle dos negócios abertos. Se você tiver um total de 0 negócios, abra-os e, se não tiver, você está acabado.
todem: Se você quiser que ele abra um negócio, não vai funcionar - é um computador 386, e é muito mais rápido, o que faz um milhão de negócios em 1 segundo. O controle da abertura de um negócio é feito através do controle de negócios abertos. Se você tiver um total de 0 negócios, abra-os e, se não tiver, você está acabado.
Hmmm... esse é o ponto, se houver um milhão de negócios, então o negócio deve ser aberto uma vez....
OK, eu vou descobrir de alguma forma)))) se houver um código para controlar os negócios, me avise...por favor))
Hmmm... é essa a questão - se houver um milhão de transações, então a transação deve ser aberta por uma transação...
ok vou descobrir de alguma forma)))) se houver um código para controle de transações, por favor me dê... por favor))
int OrdCon(int nap, int MGV)
{
int result=0;
for (int i=0;i<OrdersTotal();i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
result=result+1; // открыт ордер бай
}
if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
result=result+1; // открытый ордер селл
}
}
return(result); // 0 means we have no trades
}
if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
result=result+1; // открыт ордер бай
}
if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
result=result+1; // открытый ордер селл
}
e, neste ponto, em que base se baseia a conclusão de que a ordem aberta é uma venda ou uma compra?
aqui está o código completo acima:
int OrdCon(int nap, int MGV)
{
int result=0;
for (int i=0;i<OrdersTotal();i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
result=result+1; // открыт ордер бай
}
if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
result=result+1; // открытый ордер селл
}
}
return(result); // 0 means we have no trades
}
//+------------------------------------------------------------------+//| 20/200 expert.mq4 |//| 1H EUR/USD |//| Smirnov Pavel |//| www.autoforex.ru |//+------------------------------------------------------------------+#property copyright "Smirnov Pavel"#property link "www.autoforex.ru"externint TakeProfit = 20; // Уровень тейкпрофит в пунктахexternint StopLoss = 200; // уровень стоплосс в пунктахexternint TradeTime=18;
externint t1=7;
externint t2=2;
externint delta=7;
externint dayout=1;
externdouble lot = 0.1;
int ticket;
bool cantrade=true;
int OpenLong(double volume=0.1)
{
int slippage=10;
string comment="20/200 expert (Long)";
color arrow_color=Red;
int magic=0;
ticket=OrderSend(Symbol(),OP_BUY,volume,Ask,slippage,Ask-StopLoss*Point,
Ask+TakeProfit*Point,comment,magic,0,arrow_color);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Buy order opened : ",OrderOpenPrice());
return(0);
}
}
else
{
Print("Error opening Buy order : ",GetLastError());
return(-1);
}
}
int OpenShort(double volume=0.1)
{
int slippage=10;
string comment="20/200 expert (Short)";
color arrow_color=Red;
int magic=0;
ticket=OrderSend(Symbol(),OP_SELL,volume,Bid,slippage,Bid+StopLoss*Point,
Bid-TakeProfit*Point,comment,magic,0,arrow_color);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Sell order opened : ",OrderOpenPrice());
return(0);
}
}
else
{
Print("Error opening Sell order : ",GetLastError());
return(-1);
}
}
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
if((TimeHour(TimeCurrent())>TradeTime)) cantrade=true;
// проверяем есть ли открытые ордера ...if(OrdersTotal()<1)
{
// ... если нет ни одного открытого ордера, то идем дальше// проверяем настало ли время для торговлиif((TimeHour(TimeCurrent())==TradeTime)&&(cantrade)&&(TimeDayOfWeek(TimeCurrent())!=dayout))
{
// ... если настало время, тоif ((Open[t1]-Open[t2])>delta*Point) //Если цена изменилась на величину delta
{
//условие выполнено значит входим в короткую позицию:// проверяем есть ли свободные деньги для открытия короткой позицииif(AccountFreeMarginCheck(Symbol(),OP_SELL,lot)<=0 || GetLastError()==134)
{
Print("Not enough money");
return(0);
}
OpenShort(lot);
cantrade=false; //запрещаем торговать повторно до следующего бараreturn(0);
}
if ((Open[t2]-Open[t1])>delta*Point) //Если цена изменилась на величину delta
{
// условие выполнено значит входим в длинную позицию// проверяем есть ли свободные деньги на счетуif(AccountFreeMarginCheck(Symbol(),OP_BUY,lot)<=0 || GetLastError()==134)
{
Print("Not enough money");
return(0);
}
OpenLong(lot);
cantrade=false;
return(0);
}
}
}
return(0);
}
Caras, onde está o erro olha....a então abre várias posições no sinal, e às vezes falha o sinal....a então depois de acionar uma parada ou lucro sobre o par, abre uma nova....
Look.... conditions: cruzamento simultâneo do RSI com os períodos 14 e 17 do nível 30 de baixo para cima e tendência 70 de cima para baixo...
Caras, onde está o erro olha....a então abre várias posições no sinal, e às vezes perde os sinais....a então depois de acionar uma parada ou lucro sobre o par, abre uma nova....
Look.... conditions: cruzamento simultâneo do RSI com os períodos 14 e 17 do nível 30 de baixo para cima e tendência 70 de cima para baixo...
eu o faria dessa maneira e eu definiria uma parada de compra e não uma venda
Ha... seu caminho, com qualquer valor inferior a 30 abre uma!!!!!!! isto é inaceitável.... eu preciso de uma cruz de 30 níveis de baixo para cima!!!!!
e os valores
estes são apenas os valores de RSI da abertura da vela anterior.... eles só têm que ser menos de 30 !!! tudo está correto aqui ... Eu só não entendo porque as trocas são abertas em poucas peças a um sinal!
Eu o faria dessa forma, e seria definido não para comprar imediatamente, mas para bystop e não para vender, mas para selltop
Ha... seu caminho qualquer valor inferior a 30 abre uma!!!!!!! isto é inaceitável.... eu preciso de uma cruz de 30 níveis de baixo para cima!!!!!
e os valores
estes são apenas os valores RSI da vela de abertura anterior.... eles só têm que ser menos de 30 !!! tudo está correto aqui ... Eu só não entendo porque as negociações são abertas várias vezes em um sinal !
Se você quiser que ele abra um negócio, não vai funcionar - é um computador 386, e é muito mais rápido, o que faz um milhão de negócios em 1 segundo. O controle da abertura de um negócio é feito através do controle de negócios abertos. Se você tiver um total de 0 negócios, abra-os e, se não tiver, você está acabado.
Hmmm... esse é o ponto, se houver um milhão de negócios, então o negócio deve ser aberto uma vez....
OK, eu vou descobrir de alguma forma)))) se houver um código para controlar os negócios, me avise...por favor))
Hmmm... é essa a questão - se houver um milhão de transações, então a transação deve ser aberta por uma transação...
ok vou descobrir de alguma forma)))) se houver um código para controle de transações, por favor me dê... por favor))
aqui está a função
e, neste ponto, em que base se baseia a conclusão de que a ordem aberta é uma venda ou uma compra?
aqui está o código completo acima:
Aqui eu otimizei seu PSI com meu conselheiro