BGP over two ISP with default route sending only

I have two providers sending me only default route 0.0.0.0/0. Do I need to recieve a full routing table from both upstream providers to make my BGP works o.k. or not ?

Flags: X - disabled
0 chain=ISP1_out prefix=X.X.X.X/21 invert-match=no action=accept
1 chain=ISP1_out prefix=X.X.X.Y/22 invert-match=no action=accept
2 chain=ISP1_out prefix=X.X.X.Z/22 invert-match=no action=accept
3 chain=ISP1_out prefix=Y.Y.Y.Y/24 invert-match=no action=discard
4 chain=ISP1_out prefix=Y.Y.Y.X/24 invert-match=no action=discard
5 chain=ISP1_out prefix=0.0.0.0/0 prefix-length=0-32 invert-match=no action=discard
6 chain=ISP1_in prefix=0.0.0.0/0 invert-match=no action=accept set-bgp-local-pref=300
7 chain=ISP2_out prefix=X.X.X.X/21 invert-match=no action=accept set-bgp-prepend=4
8 chain=ISP2_out prefix=Y.Y.Y.Y/24 invert-match=no action=accept
9 chain=ISP2_out prefix=Y.Y.Y.X/24 invert-match=no action=accept
10 chain=ISP2_out prefix=X.X.X.Y/22 invert-match=no action=discard
11 chain=ISP2_out prefix=X.X.X.Z/22 invert-match=no action=discard
12 chain=ISP2_out prefix=0.0.0.0/0 prefix-length=0-32 invert-match=no action=discard
13 chain=ISP2_in prefix=0.0.0.0/0 invert-match=no action=accept set-bgp-local-pref=150

This way I wan to do next:

  1. By advertising prefix /21 to both providers in case if one of them fails whole traffic will go through other ISP
  2. By advertising prefixes /22 to ISP1 I want to make it my primary ISP
  3. By advertising prefixes /24 to ISP 2 I want to do load balancing and make these networks traffic go through ISP2

My questions in this case are:

  1. Will the upstream and downstream for /24 prefix go through ISP 2 or just downstream ? What shoul I do to make down/up go through the ISP ?
  2. If I use ISP1 for upstream and advertise /24 prefix through ISP2 will that make a problem and how will it work ?
  3. Any suggestions ?!

Downstream is controoled by advertising your network to ISPs with certain BGP attributes
http://forum.mikrotik.com/t/ebgp-with-two-isps/40403/6

Upstream can be controlled by adjusting local-pref

Will I have a problem with connections if for prefix x.x.x.x/24 downstream goes through ISP2 and upstream through ISP1 ?
How can I set for the two default routes that the one comming from ISP1 is always primary ?
Somethimes when I reboot my router the default route from ISP2 occure as primary even if I set Local pref for ISP1 on 300.

Is this wrong setting?
6 chain=ISP1_in prefix=0.0.0.0/0 invert-match=no action=accept set-bgp-local-pref=300
13 chain=ISP2_in prefix=0.0.0.0/0 invert-match=no action=accept set-bgp-local-pref=150

Or the local pref. must be set for OUT filter ?

No you will not have any problems unless connection tracking is used (connection marks, drop invalid connections etc.)

Your rules are correct, make sure that the same BGP instance is used for both peers.