Macd Stochastic Fractal MA5/25 Daily Marylin

Locked
phil_trade

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by phil_trade »

So , if an experience coder have interest and time - Baluda he ho :) - to transcript it for the forum, let's go for detail explanation :

Daily strategy for multipairs EA for these 5 pairs : EURUSD / CHFJPY / EURJPY / USDCHF / XAUUSD

It need these indicators :

- MA5 EMA Close
- MA25 EMA Close
- MACD 9,26,9 Close
- Stochastic 10;3;3 Close/Close
- Fractal and S/R of SR_SupportResistance_v04b (found here in this forum)

It take trade with no SL/TP but control Virtual SL/TP (see next post). Fix lot 0.10 for 2500 UD$ balance minimum if 1:500 leverage

For fractal, i'm using this code in delphi to store last Fast Fractal Up and Down and last Slow Fractal Up and Down

Code: Select all

             Fractal1:=false;
              Fractal2:=false;
              Fractal3:=false;
              Fractal4:=false;

              for p := 1 to 120 do
              begin
               FractalFastDn := RoundTo( GetIndicatorValue(FRACTAL_H4[i],p,0), -Digits);
               FractalFastUp := RoundTo( GetIndicatorValue(FRACTAL_H4[i],p,1), -Digits);
               FractalSlowDn := RoundTo( GetIndicatorValue(FRACTAL_H4[i],p,2), -Digits);
               FractalSlowUp := RoundTo( GetIndicatorValue(FRACTAL_H4[i],p,3), -Digits);

               DateFractal := iTime(PaireDevise[i],PERIOD_D1,p);
               if DateFractal > TimeCurrent then pause;

               //Lprint(PaireDevise[i]+' -> Date Courante = '+DateTimeToStr(TimeCurrent)+' : Indice = '+IntToStr(p)+' Fractal date = '+DateTimeToStr(DateFractal)) ;

               if (FractalSlowDn > 0) and (FractalSlowDn <> PaireFractalValueH4[i,1]) and (DateFractal > PaireFractalDateH4[i,1]) then
               begin
                PaireFractalValueH4[i,1] := FractalSlowDn ;
                PaireFractalDateH4[i,1] := DateFractal ;
                Fractal1:=true;
               end;

               if (FractalSlowUp > 0) and (FractalSlowUp <> PaireFractalValueH4[i,2]) and (DateFractal > PaireFractalDateH4[i,2]) then
               begin
                PaireFractalValueH4[i,2] := FractalSlowUp ;
                PaireFractalDateH4[i,2] := DateFractal ;
                Fractal2:=true;
               end;

               if (FractalFastDn > 0) and (FractalFastDn <> PaireFractalValueH4[i,3]) and (DateFractal > PaireFractalDateH4[i,3]) then
               begin
                PaireFractalValueH4[i,3] := FractalFastDn ;
                PaireFractalDateH4[i,3] := DateFractal ;
                Fractal3:=true;
               end;

               if (FractalFastUp > 0) and (FractalFastUp <> PaireFractalValueH4[i,4]) and (DateFractal > PaireFractalDateH4[i,4]) then
               begin
                PaireFractalValueH4[i,4] := FractalFastUp ;
                PaireFractalDateH4[i,4] := DateFractal ;
                Fractal4:=true;
               end;

              if (Fractal1=true) and (Fractal2=true) and (Fractal3=true) and (Fractal4=true) then break;
             end;
It scan 5 pairs every 1 minute and do :

- Detection for BUY signal if :

Code: Select all

                   //Buy

       NbTradeBuy := IsThisDeviseWithoutSLTradable(PaireDevise[kk],0,0);
       NbTradeSell := IsThisDeviseTradable(PaireDevise[kk],1,0);

                   if ( NbTradeBuy < MACD_NbTradeMax[kk]) and (NbTradeSell = 0) and
                      ( PaireMACD_D1Main[kk,1] > PaireMACD_D1Main[kk,2]) and ( PaireMACD_D1Main[kk,2] > PaireMACD_D1Main[kk,3]) and
                      ( _STOD1SLOW[kk,1] <= MACD_StochLevelToTrade[kk]) and ( _STOD1FAST[kk,1] >  _STOD1SLOW[kk,1]) and ( _STOD1FAST[kk,1] >  _STOD1FAST[kk,2]) and
                      ( PaireMA5[kk,1] > PaireMA5[kk,2]) and ( PaireMA5[kk,2] > PaireMA5[kk,3]) and ( PaireMA25[kk,2] - PaireMA25[kk,1] < MACD_DeltaPipsMA25[kk]*Point ) and
                      ((MonNbHour > MACD_HOURDELAY[kk] ) or (MonNbHour=9999)) and ((MonNbHourHistoBUY > MACD_HOURDELAY2[kk] ) or (MonNbHourHistoBUY=9999))  then
                   begin
- Nb Buy Trade not protected by SL < 3
- Nb SELL Trade = 0
- 3 last Daily MACD MAIN are UP
- Daily Stoch Slow < (param for each pair) (default 70)
- Daily STOCH Fast bar 1 > Stoch Fast bar 2
- MA5 is Up -> MA5 1 > MA5 2 and MA5 2 > MA5 3
- MA25 is Up or Down Less than "delta pips mini" (param for each pair) between MA25 1 and MA25 2 for UP direction
- Delay between 2 live trades > (param for each pair) (default 24H)
- Delay between Now and LastHisto trade > (param for each pair) (default 4H)

Add control Nb pips between last trade like this

Code: Select all

                   DistanceLastPrice := true;
                   DernierPrix := RenvoieLastOpenPrice(PaireDevise[kk],0);

                   if (DernierPrix > 0) then
                     begin
                     if MonBid > DernierPrix then
                     begin
                        if (MonBid - DernierPrix < MACD_DistanceInterTrade[kk]*Point) then DistanceLastPrice := false;
                     end
                     else
                     begin
                        if (DernierPrix  - MonBid < MACD_DistanceInterTrade[kk]*Point) then DistanceLastPrice := false;
                     end;
                   end;
Add Resistance Detection -> No Resistance with Nb HIT >=4 near 250 pts (each pair must run S/R indicator in FR to draw box on chart but with Empty4 it will generate Empty4 Global Variable that we can retrieve information ,like this :

for FT delphi :

Code: Select all

  DistanceSR := true;
                        for k:=0 to 50 do
                        begin
                          MonObjet := 'SSSR#'+IntTostr(k);
                          if ObjectExists(MonObjet) then
                          begin

                          MonTypeZone := ObjectGet(MonObjet,OBJPROP_STYLE);
                          MonNbHitZone := ObjectGet(MonObjet,OBJPROP_WIDTH);

                              if MonNbHitZone >=4 then
                              begin
                                  MonPrixHaut := RoundTo(ObjectGet(MonObjet, OBJPROP_PRICE1),-digits);
                                  MonPrixBas := RoundTo(ObjectGet(MonObjet, OBJPROP_PRICE2),-digits);

                                  // Prix trop proche S/R ou dans S/R
                                  if  ((MonBid <= MonPrixBas) and (MonPrixBas - MonBid < (250 * MonPoint) )) or
                                  ((MonBid >= MonPrixBas) and (MonBid <= MonPrixHaut)) or (MonPrixHaut * MonPrixBas =0) then
                                  begin
                                    DistanceSR := false;
                                    break;
                                  end;

                              end;

                          end
                          else break;

                        end;
For Windev/Empty4 :

Code: Select all

SI Table_Compte.GestionSR = Vrai ALORS
								DistanceSR = Faux
								SRDétecté = Faux
								ValeurGVProcheHi = 999999
								ValeurGVProcheLo = 999999
								
								
								
								SI Empty4.GlobalVariableCheck("SSSR_Count_"+MaDevise+"240")=True  ALORS
									NbSR = Empty4.GlobalVariableGet("SSSR_Count_"+MaDevise+"240")
									
									POUR BoucleSR = 1 _A_ NbSR-1
										
										SI Empty4.GlobalVariableCheck("SSSR_LO_"+MaDevise+"240"+BoucleSR)=True ET Empty4.GlobalVariableCheck("SSSR_HI_"+MaDevise+"240"+BoucleSR)=True ALORS
											
											ValeurGVLo = Empty4.GlobalVariableGet("SSSR_LO_"+MaDevise+"240"+BoucleSR)
											ValeurGVHi = Empty4.GlobalVariableGet("SSSR_HI_"+MaDevise+"240"+BoucleSR)
											
											SI ValeurGVHi > MonBid OU ValeurGVLo > MonBid ALORS
												
												SRDétecté = Vrai
												ForceSR = 9
												SI Empty4.GlobalVariableCheck("SSSR_STRENGTH_"+MaDevise+"240"+BoucleSR)=True ALORS ForceSR = Empty4.GlobalVariableGet("SSSR_STRENGTH_"+MaDevise+"240"+BoucleSR)+1	
												
												// valide niveau SR si inférieur au minimum demandé pour la devise ou distance OK
												SI ((ValeurGVHi - MonBid) > MonDeltaPipsSR * MonPoint ET (ValeurGVLo - MonBid) > MonDeltaPipsSR * MonPoint) OU ForceSR <= W_Devise_Libellé.MACD_NiveauMiniSRAccordTrade ALORS										
													DistanceSR = Vrai	
													SI ValeurGVHi < ValeurGVProcheHi ET ValeurGVHi > MonBid  ALORS ValeurGVProcheHi = ValeurGVHi																					
													SI ValeurGVLo < ValeurGVProcheLo ET ValeurGVHi > MonBid  ALORS ValeurGVProcheLo = ValeurGVLo	
												SINON
													EcritMessage  = Vrai
													MaligneTexte  = "BUY sur cross MACD refusée car Résistance "+ListeForceSR[ForceSR]+"   trop proche à Lo/Hi "+NumériqueVersChaîne(ValeurGVLo,MonFormat)+"/"+NumériqueVersChaîne(ValeurGVHi,MonFormat)
													SousChaîne = ExtraitChaîne(SAI_JOURNAL, rangPremier, RC)
													TANTQUE SousChaîne <> EOT
														SI ChaîneOccurrence(SousChaîne , MaligneTexte) > 0 ALORS 
															EcritMessage = Faux 
															SORTIR
														SINON 
															EcritMessage = Vrai
														FIN
														SousChaîne = ExtraitChaîne(SAI_JOURNAL, rangSuivant, RC)
													FIN
													SI EcritMessage = Vrai ALORS MonMessageLive(MaDevise,MonPortMT4,MaligneTexte)																	
													DistanceSR = Faux
													SORTIR
												FIN										
											FIN
											
										FIN																		
									FIN
								FIN
								SI DistanceSR = Vrai ALORS MonMessageLive(MaDevise,MonPortMT4,"BUY sur cross MACD avec Résistance "+ListeForceSR[ForceSR]+"   proche à Lo/hi  "+NumériqueVersChaîne(ValeurGVProcheLo,MonFormat)+"/"+NumériqueVersChaîne(ValeurGVProcheHi,MonFormat),Vrai)							
							FIN
Add in option Slow Fractal filter like this :

Code: Select all

                       // si date fractal Slow DN est plus récente que Slow UP -> sens fractal = hausse sinon baisse
                       if UseFractalSlowToOpenTrade then
                       begin
                       if (PaireFractalDateH4[kk,1]>0) and (PaireFractalDateH4[kk,2]>0) and (PaireFractalDateH4[kk,1] < PaireFractalDateH4[kk,2]) then
                       begin
                       DistanceSr := false;
                         Lprint(PaireDevise[kk]+' BUY refusé par UseFractalSlowToOpenTrade car -> Slow Fractal DN = '+MaValeurToStr(PaireFractalValueH4[kk,1],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,1])
                         +' -> Fractal UP = '+MaValeurToStr(PaireFractalValueH4[kk,2],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,2]) ) ;
                       end
                       else
                       begin
                         Lprint(PaireDevise[kk]+' BUY accepté par UseFractalSlowToOpenTrade car -> Slow Fractal DN = '+MaValeurToStr(PaireFractalValueH4[kk,1],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,1])
                         +' -> Fractal UP = '+MaValeurToStr(PaireFractalValueH4[kk,2],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,2]) ) ;
                       end;
                       end;

- Detection for SELL signal if :

Code: Select all

       NbTradeBuy := IsThisDeviseTradable(PaireDevise[kk],0,0);
       NbTradeSell := IsThisDeviseWithoutSLTradable(PaireDevise[kk],1,0);

                   //Sell
                   if ( NbTradeSell < MACD_NbTradeMax[kk]) and (NbTradeBuy = 0) and
                      ( PaireMACD_D1Main[kk,1] < PaireMACD_D1Main[kk,2]) and ( PaireMACD_D1Main[kk,2] < PaireMACD_D1Main[kk,3]) and
                      ( _STOD1SLOW[kk,1] >= 100-MACD_StochLevelToTrade[kk]) and ( _STOD1FAST[kk,1] <  _STOD1SLOW[kk,1]) and ( _STOD1FAST[kk,1] <  _STOD1FAST[kk,2]) and
                      ( PaireMA5[kk,1] < PaireMA5[kk,2]) and ( PaireMA5[kk,2] < PaireMA5[kk,3]) and ( PaireMA25[kk,1] - PaireMA25[kk,2] < MACD_DeltaPipsMA25[kk]*Point ) and
                      ((MonNbHour > MACD_HOURDELAY[kk] ) or (MonNbHour=9999)) and ((MonNbHourHistoBUY > MACD_HOURDELAY2[kk] ) or (MonNbHourHistoBUY=9999))  then
                   begin
- Nb Sell Trade not protected by SL < 3
- Nb Buy Trade = 0
- 3 last Daily MACD MAIN are DOWN
- Daily Stoch Slow > (param for each pair) (default param 30)
- Daily STOCH Fast bar 1 < Stoch Fast bar 2
- MA5 is Down -> MA5 1 < MA5 2 and MA5 2 < MA5 3
- MA25 is Down or UP less than "delta pips mini" (param for each pair) between MA25 2 and MA25 1 for Down direction
- Delay between 2 live trades > (param for each pair) (default 24H)
- Delay between Now and LastHisto trade > (param for each pair) (default 4H)

Add control Nb pips between last live trade like this

Code: Select all

                   DistanceLastPrice := true;
                   DernierPrix := RenvoieLastOpenPrice(PaireDevise[kk],0);

                   if (DernierPrix > 0) then
                     begin
                     if MonBid > DernierPrix then
                     begin
                        if (MonBid - DernierPrix < MACD_DistanceInterTrade[kk]*Point) then DistanceLastPrice := false;
                     end
                     else
                     begin
                        if (DernierPrix  - MonBid < MACD_DistanceInterTrade[kk]*Point) then DistanceLastPrice := false;
                     end;
                   end;
Add Support Detection -> No Support with Nb HIT >=4 near 250 pts (each pair must run S/R indicator in FR to draw box on chart but with Empty4 it will generate Empty4 Global Variable that we can retrieve information ,like this :

Code: Select all

  //contrôle distance S/R > MACD_DeltaPipsFromSRToTakeTrade[kk]
                        DistanceSR := true;

                        for k:=0 to 50 do
                        begin
                          MonObjet := 'SSSR#'+IntTostr(k);
                          if ObjectExists(MonObjet) then
                          begin

                          MonTypeZone := ObjectGet(MonObjet,OBJPROP_STYLE);
                          MonNbHitZone := ObjectGet(MonObjet,OBJPROP_WIDTH);

                              if MonNbHitZone >=4 then
                              begin
                                  MonPrixHaut := RoundTo(ObjectGet(MonObjet, OBJPROP_PRICE1),-digits);
                                  MonPrixBas := RoundTo(ObjectGet(MonObjet, OBJPROP_PRICE2),-digits);

                                  // Prix trop proche S/R ou dans S/R
                                  if  ((MonBid >= MonPrixHaut) and (MonBid - MonPrixHaut < (250 * MonPoint) )) or
                                  ((MonBid >= MonPrixBas) and (MonBid <= MonPrixHaut)) or (MonPrixHaut * MonPrixBas =0) then
                                  begin
                                    DistanceSR := false;
                                    break;
                                  end;

                              end;

                          end
                          else break;

                        end;
Add in option Slow Fractal filter like this :

Code: Select all

                       // si date fractal Slow DN est moins récente que Slow UP -> sens fractal = hausse sinon baisse
                       if UseFractalSlowToOpenTrade then
                       begin
                       if (PaireFractalDateH4[kk,1]>0) and (PaireFractalDateH4[kk,2]>0) and (PaireFractalDateH4[kk,2] < PaireFractalDateH4[kk,1])  then
                       begin
                       DistanceSr := false;
                         Lprint(PaireDevise[kk]+' SELL accepté par UseFractalSlowToOpenTrade car ->  -> Slow Fractal UP = '+MaValeurToStr(PaireFractalValueH4[kk,2],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,2])
                         +' -> Fractal DN = '+MaValeurToStr(PaireFractalValueH4[kk,1],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,1])) ;
                       end
                       else
                       begin
                         Lprint(PaireDevise[kk]+' SELL refusé par UseFractalSlowToOpenTrade car ->  -> Slow Fractal UP = '+MaValeurToStr(PaireFractalValueH4[kk,2],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,2])
                         +' -> Fractal DN = '+MaValeurToStr(PaireFractalValueH4[kk,1],Digits)+' le '+DateTimeToStr(PaireFractalDateH4[kk,1])) ;
                       end;
                       end;

Next post to detail Money Management and Control Open Trade...
phil_trade

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by phil_trade »

Money Magement :

- Allow New trade only if New trade need less 50% of free margin

Code: Select all

			// Contrôle si ce trade ne consomme pas plus de 50% de la marge restante
			SI MT.MarketInfo(MaDeviseMT4,InfoMode.MARGINREQUIRED) * VolumeInitiale <= MT.AccountFreeMargin() / 2
- Allow New trade only is Spread is 1.x (param default 1.5) time Standard Spread
- Trade only if 1000% (param) free margin
- Close Bad trade if freemargin < 500 % (param)

Control Open Trade

1 - Option : Close Partial Trade on Friday ( give smooth but less result )

Code: Select all

    //Close on Friday
    if MACD_UseCloseFriday = 1 then
    begin
         if (DayOfTheWeek(TimeCurrent)= 5) and (HourOf(TimeCurrent)>= 21) and (MACD_FlagCloseFriday[j]=0) then
         begin
           MACD_FlagCloseFriday[j] := 1;
           if (OrderProfit>0) then
               begin
                   if OrderLots <= 0.10 then
                   begin
                      Lprint(PaireDevise[j]+' -> Close Finale sur Vendredi 21H ' ) ;
                      CloseOrder(OrderTicket)
                   end
                   else
                   begin
                      Lprint(PaireDevise[j]+' -> Close Partielle sur Vendredi 21H ' ) ;
                      CloseOrderPArtial(OrderTicket,0.10)
                   end;
               exit;
               end;
         end;

         // réamorce du flag
         if (DayOfTheWeek(TimeCurrent)= 1) then MACD_FlagCloseFriday[j] := 0;
    end;
2 - Close trade if
- Profit < 0
- 3 MACD bar down for Buy or 3 MACD bar UP for Sell
- Bid > High Open Trade for Sell or Bid < Low Open Trade for Buy

Code: Select all

    // Ferme trade si Perte sur Devise et 3 MACD baisse pour Achat et inverst pour Vente
    if (OrderType = tp_sell) and (PaireMACD_D1Main[j,1] > PaireMACD_D1Main[j,2]) and (PaireMACD_D1Main[j,2] > PaireMACD_D1Main[j,3]) then
    begin
      if (GetProfitDevise(PaireDevise[j],OrderTicket) < 0) and (MonBid > ReturnHighOpenPrice(PaireDevise[j],OrderTicket)) then
      begin
        Lprint(PaireDevise[j]+' -> Solde Sell sur Perte et 3 MACD haussiers ' );
        FermeTradeDevise(PaireDevise[j],tp_sell,0,999999);
        exit;
      end;
    end;

    if (OrderType = tp_buy) and (PaireMACD_D1Main[j,1] < PaireMACD_D1Main[j,2]) and (PaireMACD_D1Main[j,2] < PaireMACD_D1Main[j,3]) then
    begin
      if (GetProfitDevise(PaireDevise[j],OrderTicket) < 0)  and (MonBid < ReturnLowOpenPrice(PaireDevise[j],OrderTicket)) then
      begin
        Lprint(PaireDevise[j]+' -> Solde BUY sur Perte et 3 MACD baissiers ' );
        FermeTradeDevise(PaireDevise[j],tp_buy,0,999999);
        exit;
      end;
    end;
3 - Move SL on Fractal Fast Down for Buy or Fractal Fast Up For sell

Code: Select all

    //Pose SL sur Fractal pour Sell si dernier Fractal est UP
    if (OrderType = tp_sell) and (PaireFractalDateH4[j,4] > PaireFractalDateH4[j,3]) and (OrderStopLoss>0) and (PaireFractalValueH4[j,4]>0) then
    begin
      NewSL := PaireFractalValueH4[j,4] + (10*Point);
      if (NewSL > MonBid + (10*Point)) and (NewSL < OrderStopLoss) then
      begin
      ModifyOrder(OrderTicket,OrderOpenPrice,NewSL,OrderTakeProfit);
      Lprint(PaireDevise[j]+' -> Move SL sur New Fractal Fast UP = '+MaValeurTostr(NewSL,Digits) );
      end;
    end;

    //Pose SL sur Fractal pour Buy si dernier Fractal est DN
    if (OrderType = tp_buy) and (PaireFractalDateH4[j,3] > PaireFractalDateH4[j,4]) and (OrderStopLoss>0) and (PaireFractalValueH4[j,3]>0) then
    begin
      NewSL := PaireFractalValueH4[j,3] - (10*Point);
      if (NewSL < MonBid + (10*Point)) and (NewSL > OrderStopLoss) then
      begin
      ModifyOrder(OrderTicket,OrderOpenPrice,NewSL,OrderTakeProfit);
      Lprint(PaireDevise[j]+' -> Move SL sur New Fractal Fast DN = '+MaValeurTostr(NewSL,Digits) );
      end;
    end;
4 - Move SL on Low Open Price for Sell or High Open Price for Buy if Stochastic enter OBOS zone with Delta pips minimal between Bid and Open Price

Code: Select all

    // Pose SL sur last trade si Stoch OBOS
    if (OrderType = tp_sell) and (_STOD1SLOW[j,1] < 10 ) and (_STOD1FAST[j,1] < _STOD1SLOW[j,1]) then
    begin

    NewSL := ReturnLowOpenPrice(PaireDevise[j],OrderTicket);
    if (NewSL - MonBid > MACD_DeltaPipsMoveSLOnStoch[j]*Point) then
    begin
      if ((NewSL < OrderStopLoss) or (OrderStopLoss=0)) and (NewSL <> 9999) and (NewSL > MonBid + (10*Point)) then
      begin
      ModifyOrder(OrderTicket,OrderOpenPrice,NewSL,OrderTakeProfit);
      Lprint(PaireDevise[j]+' -> Move SL sur Stoch' );
      end;
    end;
    end;

   if (OrderType = tp_buy) and (_STOD1SLOW[j,1] > 90) and (_STOD1FAST[j,1] < _STOD1SLOW[j,1]) then
    begin
    NewSL := ReturnHighOpenPrice(PaireDevise[j],OrderTicket);
    if (MonBid - NewSL > MACD_DeltaPipsMoveSLOnStoch[j]*Point) then
    begin
      if ((NewSL > OrderStopLoss) or (OrderStopLoss=0)) and (NewSL <> 0) and (NewSL < MonBid - (10*Point)) then
      begin
      ModifyOrder(OrderTicket,OrderOpenPrice,NewSL,OrderTakeProfit);
      Lprint(PaireDevise[j]+' -> Move SL sur Stoch' );
      end;
    end;
    end;
5 - Close Trade on Virtual SL reach - Delta Pips for each pair -

Code: Select all

    if (MonProfitPips < -MACD_SL_MAX[j]) and (MACD_SL_MAX[j]>0)  then
    begin

      if OrderType = tp_buy then
      begin
        Lprint(PaireDevise[j]+' -> Solde Buy sur Perte Max atteinte = '+MaValeurTostr(MonProfitPips,0) );
        CloseOrder(OrderTicket);
        exit;
      end;
Ouf...Hope all is in the box !

So..some brave coders to take up the challenge?
vadlapatis

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by vadlapatis »

Hope Mr.Steve will have a look at this , to code it for Empty4
User avatar
niepce
Trader
Posts: 152
Joined: Wed Jul 04, 2012 11:00 pm
Location: Grenoble, France

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by niepce »

I've started a translation from Delphi to MQL4 of this.
But I am a superslow guy so don't expect anything in the next 10 days.
If anyone is doing it in parallel, please PM me.
User avatar
niepce
Trader
Posts: 152
Joined: Wed Jul 04, 2012 11:00 pm
Location: Grenoble, France

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by niepce »

One milestone is attained since i've written 100% of the EA.
Before posting it, I need to do some decent testings, debug and optimize (fractal=cpu clog!).
But it's on the right way !
musky
Trader
Posts: 54
Joined: Fri Nov 18, 2011 8:30 pm
Location: Northwoods

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by musky »

Thanks so much for the quick work.
User avatar
squalou
Trader
Posts: 49
Joined: Wed Nov 16, 2011 8:57 am
Location: fabulous Aix en Provence, southern France;

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by squalou »

hehe, would this be the first Froggy thread here in Steve forum ?...
:lol:

Merci Niepce pour la conversion!
Et bien sur phil pour la strat elle-meme!

Voyons donc ce qu'elle a dans le buffet! :mrgreen:

SQ
" Every battle is won before it is ever fought "
Sun-Tzu, The Art of War, 400BC.
phil_trade

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by phil_trade »

squalou wrote:hehe, would this be the first Froggy thread here in Steve forum ?...
:lol:

Merci Niepce pour la conversion!
Et bien sur phil pour la strat elle-meme!

Voyons donc ce qu'elle a dans le buffet! :mrgreen:

SQ
je croaaaaââ ... :lol:
rambo406
Posts: 2
Joined: Mon Feb 04, 2013 12:49 pm

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by rambo406 »

Hi phil,

I am still a new programmer on EA.
Do you mind to explain what is the meaning of the following rules?

- Daily Stoch Slow < (param for each pair) (default 30)
- Daily STOCH Fast bar 1 < Stoch Fast bar 2

You mentioned about following rule:

- Stochastic 10;3;3 Close/Close

but what about the fast/slow settings?

Thanks.
phil_trade

Re: MACD STOCHASTIC FRACTAL MA5/25 DAILY EA

Post by phil_trade »

rambo406 wrote:Hi phil,

I am still a new programmer on EA.
Do you mind to explain what is the meaning of the following rules?

- Daily Stoch Slow < (param for each pair) (default 30)
- Daily STOCH Fast bar 1 < Stoch Fast bar 2

You mentioned about following rule:

- Stochastic 10;3;3 Close/Close

but what about the fast/slow settings?

Thanks.
1 -
for Sell Stoch must be > OverSell (30) and for Buy Stoch must be < OverBought (100-param=70)
AND Stoch Fast must Down for Sell -> Daily STOCH Fast bar 1 < Stoch Fast bar 2
or Up For BUY Daily STOCH Fast bar 1 > Stoch Fast bar 2

2 -
Stochastic 10;3;3 Close/Close give you 2 buffers 1 for Slow 1 for Fast
Locked

Return to “Automated trading systems”