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.