Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 09.07.19
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard Mehrere Timeframes traden lassen

Hallo.

Ich versuche CCI, Stochastic und WPR die M15, M30 und H1 Charts handeln zu lassen. Forex. Hab für jeden Chart extra die 3 Indikatoren deklariert und auch für jeden Chart extra die Einstiegsbedingungen mit bools festgelegt.

Die komplette Quell-Datei ist im Anhang.

Code:
//=============================================================================================================
// C C I   D E K L A R A T I O N
//=============================================================================================================

double CCI_M15=iCCI(Symbol(),15,CCI_Period,CCI_Price,1);
double CCI_M30=iCCI(Symbol(),30,CCI_Period,CCI_Price,1);
double CCI_M60=iCCI(Symbol(),60,CCI_Period,CCI_Price,1);

//=============================================================================================================
// S T O C H A S T I C   D E K L A R A T I O N
//=============================================================================================================

double STO_Ma_M15=iStochastic(Symbol(),15,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_MAIN,1);
double STO_Ma_M30=iStochastic(Symbol(),30,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_MAIN,1);
double STO_Ma_M60=iStochastic(Symbol(),60,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_MAIN,1);

double STO_Si_M15=iStochastic(Symbol(),15,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_SIGNAL,1);
double STO_Si_M30=iStochastic(Symbol(),30,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_SIGNAL,1);
double STO_Si_M60=iStochastic(Symbol(),60,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_SIGNAL,1);

//=============================================================================================================
// W P R   D E K L A R A T I O N
//=============================================================================================================

double WPR_M15=iWPR(Symbol(),15,WPR_Period,1);
double WPR_M30=iWPR(Symbol(),30,WPR_Period,1);
double WPR_M60=iWPR(Symbol(),60,WPR_Period,1);
Code:
//=============================================================================================================
// B E D I N G U N G E N   F U E R   O R D E R   S E N D
//=============================================================================================================

//           -100                                                          -80
if(CCI_M15 > CCI_indicator_level_1 && STO_Ma_M15 > STO_Si_M15 && WPR_M15 > WPR_indicator_level_2){
bool M15_Send_Buy=true;
int Close_TF=15;
int Buy_MN=15;}

if(CCI_M30 > CCI_indicator_level_1 && STO_Ma_M30 > STO_Si_M30 && WPR_M30 > WPR_indicator_level_2){
bool M30_Send_Buy=true;
Close_TF=30;
Buy_MN=30;}

if(CCI_M60 > CCI_indicator_level_1 && STO_Ma_M60 > STO_Si_M60 && WPR_M60 > WPR_indicator_level_2){
bool M60_Send_Buy=true;
Close_TF=60;
Buy_MN=60;}


//           +100                                                          -20
if(CCI_M15 < CCI_indicator_level_2 && STO_Ma_M15 < STO_Si_M15 && WPR_M15 < WPR_indicator_level_1){
bool M15_Send_Sel=true;
Close_TF=15;
int Sell_MN=15;}

if(CCI_M30 < CCI_indicator_level_2 && STO_Ma_M30 < STO_Si_M30 && WPR_M30 < WPR_indicator_level_1){
bool M30_Send_Sel=true;
Close_TF=30;
Sell_MN=30;}

if(CCI_M60 < CCI_indicator_level_2 && STO_Ma_M60 < STO_Si_M60 && WPR_M60 < WPR_indicator_level_1){
bool M60_Send_Sel=true;
Close_TF=60;
Sell_MN=60;}

Zum Schließen der Orders müssten diese bools ja reichen, denk ich. Der jeweilige Timeframe zum Schließen wird oben bei den Einstiegsbedingungen fest gelegt.
Code:
//=============================================================================================================
// B E D I N G U N G E N   F U E R   O R D E R   C L O S E
//=============================================================================================================

double STO_Ma_Close=iStochastic(Symbol(),Close_TF,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_MAIN,1);
double STO_Si_Close=iStochastic(Symbol(),Close_TF,Stoch_K_Period,Stoch_D_Period,Stoch_Slowing,Stoch_MA_Method,Stoch_price_field,MODE_SIGNAL,1);

if(STO_Ma_Close<STO_Si_Close)bool Close_Buy=true;
if(STO_Ma_Close>STO_Si_Close)bool Close_Sel=true;

Befehle zum Order öffnen:
Code:
//=============================================================================================================
// O P E N   O R D E R S
//=============================================================================================================

  if(CB_iTime==Trading_iTime_M15 || CB_iTime==Trading_iTime_M30 || CB_iTime==Trading_iTime_M60){
    if(IsInv==false && RT==true && SPR_AL==true){

      if( open_Buy==true ){
        if( M15_Send_Buy==true || M30_Send_Buy==true || M60_Send_Buy==true )OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_SL,Buy_TP,0,Buy_MN,0,clrBeige);}

      if( open_Sell==true ){
        if( M15_Send_Sel==true || M30_Send_Sel==true || M60_Send_Sel==true )OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_SL,Sel_TP,0,Sell_MN,0,clrBlue);}}}

Zu guter Letzt die Befehle zum Schließen der Orders:
Code:
for(i=OrdersTotal()-1;i>=0;i--){
  if(OrderSelect(i,SELECT_BY_POS)){

    if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MN&&OrderSymbol()==Symbol()){
      if( ( Close_Buy==true ) ||(Close_all_Orders_after_Time_O_Clock==true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrDarkGoldenrod);}
        
    if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MN&&OrderSymbol()==Symbol()){
      if( ( Close_Sel==true ) ||(Close_all_Orders_after_Time_O_Clock==true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrDarkGreen);}}}
Soweit macht er das im MT4 auch. Allerdings nur ein mal! Er darf erst ab 8:00 Uhr morgens Orders öffnen und tut das auch nur dann. Er darf bis 16:37 öffnen. Aber mehr als eine Order pro Währungspaar macht er nicht auf. Und ich kann mir beim besten Willen nicht vorstellen, dass er in über 8 Stunden bei 29 WP in jeweils 3 Timeframes keine einzige Handelsmöglichkeit findet.
Angehängte Dateien
Dateityp: mq4 Valerius_MT4_CCI_STOCH_WPR_AutoLots_AutoTF_EA.mq4 (41,5 KB, 6x aufgerufen)
Dateityp: ex4 Valerius_MT4_CCI_STOCH_WPR_AutoLots_AutoTF_EA.ex4 (30,8 KB, 2x aufgerufen)