Ho bisogno di scrivere un consulente. Ho un'idea. - pagina 3

 
lascu.roman писал(а) >>

Inizialmente ho avuto l'idea di usare questo sui diari

 

H4 con gli stessi parametri

 
dimasik >> :

Inizialmente ho avuto l'idea di usarlo nel quotidiano

Ma dovrei aprire gli ordini pendenti e avere anche TP e SL allo stesso tempo?

 

H1

 
lascu.roman писал(а) >>

È certamente possibile aprire ordini pendenti, ma hanno anche bisogno di TP e SL allo stesso tempo o cosa?

Sì, potete impostare subito la LOS e lo SL.

 
dimasik >> :

Sì, è possibile impostare Moose e Profeus contemporaneamente con i ciondoli.

Lo farò domani, se vuoi. Ora devo andare. ;-)

 
lascu.roman писал(а) >>

Lo farò domani, se vuoi. Ora devo andare. ;-)

nessun problema, grazie mille, se ne ricavo un profitto, non mancherò di ringraziarti...

 

DAX tedesco

Rapporto del tester di strategia
Break
BroCo-San-Francisco (Build 220)


Simbolo FDAXH9 (DAX (eurex) (08:00 - 22:00) scadenza 20/03/2009)
Periodo 1 ora (H1) 2008.07.07 16:00 - 2009.01.13 21:00 (2007.12.01 - 2009.01.14)
Modello Tutte le zecche (metodo più accurato basato su tutti i più piccoli timeframe disponibili)
Parametri TP_e=150; SL_e=50; BreakDown_e=15; BreakUp_e=15; Trailing=35; Lot=0.01;
Bar nella storia 1770 Zecche modellate 210146 Qualità della simulazione n/a
Errori di mancata corrispondenza dei grafici 602
Deposito iniziale 200.00
Utile netto 1567.39 Profitto totale 2945.95 Perdita totale -1378.56
Redditività 2.14 Payoff previsto 1.01
Dispersione assoluta 2.46 Massimo prelievo 26.18 (1.46%) Prelievo relativo 4.65% (12.01)
Totale scambi 1547 Posizioni corte (% vittoria) 796 (48.87%) Posizioni lunghe (% vittoria) 751 (44.47%)
Operazioni redditizie (% di tutte) 723 (46.74%) Operazioni in perdita (% di tutte) 824 (53.26%)
Il più grande commercio redditizio 4.83 perdere l'accordo -1.74
Media affare redditizio 4.07 Perdita dell'affare -1.67
Numero massimo vittorie continue (profitto) 9 (40.35) Perdite continue (perdita) 14 (-24.36)
Massimo Profitto continuo (numero di vittorie) 40.35 (9) Perdita continua (numero di perdite) -24.36 (14)
Media vincite continue 2 Perdita continua 2

 

Ecco la versione ritardata

//+------------------------------------------------------------------+
//| exp_Higt-Low.mq4
//| meta-trader
//| http://mql.mega-project.biz = Тысячи советников и индикаторов бесплатно скачать
//+------------------------------------------------------------------+
#property copyright "meta-trader"
#property link      "http://mql.mega-project.biz = Тысячи советников и индикаторов бесплатно скачать"

extern bool limit=true; // если ТРУЕ ТО ставятся стоп-ордера, а если ФАЛСЕ то ставятся лимитники
//extern int Dist = 10;
extern int BuyDist = 10;
extern int SellDist = 10;

extern int TakeProfit=1000; // тэйкпрофит
extern int Stoploss=40; // стоплосс      
extern int TrailingStop=200; // тралинг
extern bool mini_forex=true; // Если Ваш брокер допускает лоты типа 0,0X то 'mini_forex=true'
extern int Metod_lot=0; // Выбор лота Metod_lot=0 - фиксированный Metod_lot=1 - процент от депозита
extern double Lot=0.1; // Фиксированный размер лота   
extern double LotsPercent=5; // Процент от депозита
extern int MAGIC=1987088; // Магическое число ордера
extern int Slippage=3; // Проскальзывание
extern string comment= "exp_Higt-Low";// Коментарий поз
static int prevtime = 0;
int start()
  {
//----
if(OrdersTotal()>0 &&  TrailingStop!=0)  Trailingstoplossi ();
double iH=iHigh(NULL,0,1);
double iL=iLow(NULL,0,1);
if(Time[0] == prevtime) return(0); prevtime = Time[0];  /*Orders_delet();*/ Orders_open( iH, iL);
//----
   return(0);
  }
//+------------------------------------------------------------------+
void Orders_open(double zH, double zL)
{
int ticket, err;
double tp=0, sl=0;
/*int BuyDist = Dist;
int SellDist = Dist;*/
RefreshRates();
if( limit==true)
{
if( TakeProfit!=0) tp=NormalizeDouble(( zH+ BuyDist*Point+ TakeProfit*Point),Digits);
if( Stoploss!=0) sl=NormalizeDouble(( zH+ BuyDist*Point- Stoploss*Point),Digits);
OrderSend(Symbol(),OP_BUYSTOP, Lotsi(),NormalizeDouble( zH+ BuyDist*Point,Digits), Slippage, sl, tp, comment, MAGIC,0,Green);
if( TakeProfit!=0) tp=NormalizeDouble(( zL- SellDist*Point- TakeProfit*Point),Digits);
if( Stoploss!=0) sl=NormalizeDouble(( zL- SellDist*Point+ Stoploss*Point),Digits);
OrderSend(Symbol(),OP_SELLSTOP, Lotsi(),NormalizeDouble( zL- SellDist*Point,Digits), Slippage, sl, tp, comment, MAGIC,0,Green);
}
else{
if( TakeProfit!=0) tp=NormalizeDouble(( zL- BuyDist*Point+ TakeProfit*Point),Digits);
if( Stoploss!=0) sl=NormalizeDouble(( zL- BuyDist*Point- Stoploss*Point),Digits);
OrderSend(Symbol(),OP_BUYLIMIT, Lotsi(), zL-NormalizeDouble( BuyDist*Point,Digits), Slippage, sl, tp, comment, MAGIC,0,Green);
if( TakeProfit!=0) tp=NormalizeDouble(( zH+ SellDist*Point- TakeProfit*Point),Digits);
if( Stoploss!=0) sl=NormalizeDouble(( zH+ SellDist*Point+ Stoploss*Point),Digits);
OrderSend(Symbol(),OP_SELLLIMIT, Lotsi(), zH+NormalizeDouble( SellDist*Point,Digits), Slippage, sl, tp, comment, MAGIC,0,Green);
}
return(0);
}
//+------------------------------------------------------------------+
double Lotsi(){int rock=1; double Lots;
if ( Metod_lot==0) Lots= Lot;
if ( Metod_lot==1) Lots=MathCeil(AccountBalance()* LotsPercent)/100000;
if ( Lots>MarketInfo(Symbol(),MODE_MAXLOT)) Lots=MarketInfo(Symbol(),MODE_MAXLOT);
if( Lots<MarketInfo(Symbol(),MODE_MINLOT)) Lots=MarketInfo(Symbol(),MODE_MINLOT);
if ( mini_forex==true) rock=2; Lots= NormalizeDouble( Lots, rock); return ( Lots);}
//+------------------------------------------------------------------+
void Trailingstoplossi (){int cnt, total; total=OrdersTotal();
    for( cnt=0; cnt< total; cnt++){
      OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()&& OrderMagicNumber()== MAGIC){
         if(OrderType()==OP_BUY){RefreshRates();
               if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble(Point* TrailingStop,Digits)){
                  if(OrderStopLoss()<NormalizeDouble(Bid-Point* TrailingStop, Digits)){
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Bid-Point* TrailingStop),Digits),OrderTakeProfit(),0,Green);
                    /*return(0);*/}}}
         else {RefreshRates();
               if(NormalizeDouble((OrderOpenPrice()-Ask),Digits)>NormalizeDouble((Point* TrailingStop),Digits)){
                  if((NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble((Ask+Point* TrailingStop),Digits)) || (OrderStopLoss()==0)){
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Ask+Point* TrailingStop),Digits),OrderTakeProfit(),0,Red);
                    /*return(0);*/}}}}}
   /*return(0);*/
}
//+------------------------------------------------------------------+


Dimasik, ti consiglio di pompare la storia. La qualità della modellazione del 48% è troppo bassa per essere affidabile.

 

Ha eseguito la variante originale sulla sterlina per il 2008. Il risultato è buono da 10000 con 1.0 lotto su H4, il risultato è 80000 (take -144, moose -55, trailing -34). Ma per il mese di dicembre e fino al 14.01.09 sta perdendo. E se si piazzano ordini non su ogni candela sopra l'hai/sotto il minimo, ma si applica il principio 20/80. Se l'apertura è nel 20% superiore della barra, e la chiusura è nel 20% inferiore della barra, allora metti in vendita sotto il minimo.

Per comprare - riflesso dello specchio.

Così si definirà una tendenza, anche se a breve termine. Naturalmente, il numero di operazioni diminuirà, ma il numero di operazioni redditizie aumenterà e il drawdown diminuirà. Penso che questo sarà un risultato eccellente sui grandi grafici H1.