[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 149
Ragazzi, dov'è l'errore guarda....a poi apre diverse posizioni al segnale, e a volte manca i segnali....a poi dopo aver innescato uno stop o profitto sulla coppia, ne apre una nuova....
Condizioni di look....: incrocio simultaneo di RSI con periodi 14 e 17 del livello 30 dal basso verso l'alto e uptrend 70 dall'alto verso il basso...
Ragazzi, dov'è l'errore guarda....a poi apre diverse posizioni al segnale, e a volte manca i segnali....a poi dopo aver innescato uno stop o profitto sulla coppia, ne apre una nuova....
Condizioni di look....: incrocio simultaneo di RSI con periodi 14 e 17 del livello 30 dal basso verso l'alto e uptrend 70 dall'alto verso il basso...
if (( diRSI1<30 && diRSI2<30)){
OpenBuy();
return(0);
}
if (diRSI1>70 && diRSI2>70){
OpenSell();
return(0);
}
Io farei così e imposterei anche un buy stop e non un sell
todem: Io lo farei in questo modo e imposterei un buy Stop e non un sell
Ha... il tuo modo, con qualsiasi valore inferiore a 30 apre un trade!!!!!!! questo è inaccettabile.... ho bisogno di un cross di livello 30 da sotto a sopra!!!!!
e i valori
A1=diRSI1;
A2=diRSI2;
questi sono solo i valori di RSI dell'apertura della candela precedente.... devono solo essere inferiori a 30 !!! tutto è corretto qui ... solo non capisco perché i trade vengono aperti in pochi pezzi ad un segnale!
Ha... your way qualsiasi valore inferiore a 30 apre un trade!!!!!!! questo è inaccettabile.... ho bisogno di un cross di livello 30 dal basso verso l'alto!!!!!
e i valori
Questi sono solo i valori RSI della candela di apertura precedente.... devono solo essere inferiori a 30 !!! tutto è corretto qui ... solo non capisco perché i trade vengono aperti più volte ad un segnale !
Se vuoi fargli aprire un solo trade, non puoi fargliene aprire 386, è molto più veloce di questo, che può eseguire un milione di trade in 1 secondo. Il controllo dell'apertura di un trade è fatto controllando i trade aperti. Se hai un totale di 0 trade, aprili, e se non li hai, hai finito.
todem: Se vuoi che apra un solo trade, non funzionerà - è un computer 386, ed è molto più veloce, che fa un milione di trade in 1 secondo. Il controllo dell'apertura di un trade è fatto controllando i trade aperti. Se hai un totale di 0 trade, aprili, e se non li hai, hai finito.
Hmmm... Questo è il punto, se ci sono un milione di scambi, allora l'affare dovrebbe essere aperto una volta....
OK, lo scoprirò in qualche modo))) se c'è un codice per controllare gli scambi, fatemelo sapere... per favore))
Hmmm... questo è il punto - se ci sono un milione di transazioni, allora la transazione dovrebbe essere aperta da una transazione...
ok lo capirò in qualche modo))) se c'è un codice per il controllo delle transazioni, per favore datemelo... per favore))
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 a questo punto, su quale base si conclude che l'ordine aperto è una vendita o un acquisto?
Ecco l'intero codice qui sopra:
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);
}
Ragazzi, dov'è l'errore guarda....a poi apre diverse posizioni al segnale, e a volte manca i segnali....a poi dopo aver innescato uno stop o profitto sulla coppia, ne apre una nuova....
Condizioni di look....: incrocio simultaneo di RSI con periodi 14 e 17 del livello 30 dal basso verso l'alto e uptrend 70 dall'alto verso il basso...
Ragazzi, dov'è l'errore guarda....a poi apre diverse posizioni al segnale, e a volte manca i segnali....a poi dopo aver innescato uno stop o profitto sulla coppia, ne apre una nuova....
Condizioni di look....: incrocio simultaneo di RSI con periodi 14 e 17 del livello 30 dal basso verso l'alto e uptrend 70 dall'alto verso il basso...
Io lo farei in questo modo e imposterei un buy Stop e non un sell
Ha... il tuo modo, con qualsiasi valore inferiore a 30 apre un trade!!!!!!! questo è inaccettabile.... ho bisogno di un cross di livello 30 da sotto a sopra!!!!!
e i valori
questi sono solo i valori di RSI dell'apertura della candela precedente.... devono solo essere inferiori a 30 !!! tutto è corretto qui ... solo non capisco perché i trade vengono aperti in pochi pezzi ad un segnale!
Io lo farei in questo modo, e sarebbe impostato non immediatamente a comprare ma a bystop e non a vendere ma a sellstop
Ha... your way qualsiasi valore inferiore a 30 apre un trade!!!!!!! questo è inaccettabile.... ho bisogno di un cross di livello 30 dal basso verso l'alto!!!!!
e i valori
Questi sono solo i valori RSI della candela di apertura precedente.... devono solo essere inferiori a 30 !!! tutto è corretto qui ... solo non capisco perché i trade vengono aperti più volte ad un segnale !
Se vuoi che apra un solo trade, non funzionerà - è un computer 386, ed è molto più veloce, che fa un milione di trade in 1 secondo. Il controllo dell'apertura di un trade è fatto controllando i trade aperti. Se hai un totale di 0 trade, aprili, e se non li hai, hai finito.
Hmmm... Questo è il punto, se ci sono un milione di scambi, allora l'affare dovrebbe essere aperto una volta....
OK, lo scoprirò in qualche modo))) se c'è un codice per controllare gli scambi, fatemelo sapere... per favore))
Hmmm... questo è il punto - se ci sono un milione di transazioni, allora la transazione dovrebbe essere aperta da una transazione...
ok lo capirò in qualche modo))) se c'è un codice per il controllo delle transazioni, per favore datemelo... per favore))
ecco la funzione
e a questo punto, su quale base si conclude che l'ordine aperto è una vendita o un acquisto?
Ecco l'intero codice qui sopra:
Qui ho ottimizzato il tuo PSI con il mio consulente