Sabtu, 17 Juni 2006

Belajar Coding

http://jumforex.blogspot.com/2013/01/belajar-membuat-ea-sederhana-23-average.html

//+------------------------------------------------------------------+
//|                                                Jum+AvZigzag+.mq4 |
//|                                                gifaesa@yahoo.com |
//|                                     http://JumForex.blogspot.com |
//+------------------------------------------------------------------+

#property copyright "JumForex.blogspot.com"
#property link      "Gifaesa@yahoo.com"

extern string  Nama_EA                 = "Jum+AvZigzag+";
extern string  Target_Equety_          = "Harus lebih besar dari Equety+";
extern double  Target_Equety           = 1000;
extern bool    Trade_buy               = true;
extern bool    Trade_sell              = true;
extern int     Mulai_Jam               = 6;
extern int     Akhir_Jam               = 20;
extern bool    Tp_in_Money             = true;
extern double  TP_in_money             = 10;
extern int     TP                      = 100;
extern int     SL                      = 0;
extern double  Lots                    = 0.1;
extern int     Jarak_order             = 35;
extern int     Max_order               = 10;
extern double  DiMarti                 = 1;
extern bool    TrailingStop_           = false;
extern int     TrailingStop            = 20;
extern int     Magic                   = 69;
extern string  Seting_ZigzAG           = "Sesuka Hati";
extern int     ExtDepth                = 33;
extern int     ExtDeviation            = 5;
extern int     ExtBackstep             = 3;
extern string  Seting_Ma           = "Sesuka Hati";
extern int     Pereode                 = 33;


double slb,tpb,sls,tps,pt,bal;
int wt,wk,tiket,ticet;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 bal= AccountBalance();
 if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point;  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
ObjectDelete("j");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   ObjectCreate("j",OBJ_LABEL,0,0,0);
   ObjectSet("j",OBJPROP_CORNER,4);
   ObjectSet("j",OBJPROP_XDISTANCE,10);
   ObjectSet("j",OBJPROP_YDISTANCE,10);
   ObjectSetText("j","Jum+ZigZag+ from : JumForex.blogspot.com ,Donasi LR U7360459",19,"Mistral",Aqua);

//----
   if(Target_Equety<AccountEquity()) {
    closeall(0);
    closeall(1);
   Alert("Cek Target_Equetynya salah ");
   return(0);
   }
label();
if(TrailingStop_)dtrailing();
if(Tp_in_Money && TP_in_money<= money()){
   closeall(0);
   closeall(1);
   }
//----
    double ma = iMA(Symbol(), 0, Pereode , 0, MODE_LWMA, PRICE_CLOSE, 0 ) ;
    for(int d=0; d< Bars  ; d++){
    double up=iCustom(Symbol(),0,"ZigZag",   ExtDepth , ExtDeviation, ExtBackstep, MODE_UPPER, d);
    double lo=iCustom(Symbol(),0,"ZigZag",   ExtDepth , ExtDeviation, ExtBackstep, MODE_LOWER,d);
    if(up!=0 || lo!=0) break;}
   
    int sigz, sigc,signal;
     if(up>0 )  sigz= 1;
     if(lo>0)    sigz= 5;
   
    double  OP=iOpen(Symbol(),PERIOD_W1,0);

    if(Ask>OP) sigc=1;
    if(Bid<OP) sigc=5;

if(sigz+sigc==2) signal=1;
if(sigz+sigc==10)signal=2;
if(Jam_trade()==1){
   if(SL==0)slb=0;else slb=Ask-SL*pt;
   if(SL==0)sls=0;else sls=Bid+SL*pt;
   if(TP==0)tpb=0;else tpb=Ask+TP*pt;
   if(TP==0)tps=0;else tps=Bid-TP*pt;
  if(jumlahorder(0)==0 && jumlahorder(1)==0  && Trade_buy  && signal==2) {OrderSend(Symbol(),OP_BUY,NR(Lots),Ask,3,slb, tpb,Nama_EA,Magic,0,Blue);}
  if(jumlahorder(0)==0 && jumlahorder(1)==0  && Trade_sell && signal==1) {OrderSend(Symbol(),OP_SELL,NR(Lots),Bid,3,sls, tps,Nama_EA,Magic,0,Red);}
 }
if(trad()==1 && wt!=Time[0] && jumlahorder(1)==0 && jumlahorder(0)< Max_order  && Trade_buy  && signal==2) {OrderSend(Symbol(),OP_BUY,xlot(0),Ask,3,slb, tpb,Nama_EA,Magic,0,Blue); wt=Time[0]; }
if(trad()==2 && wk!=Time[0] && jumlahorder(0)==0 && jumlahorder(1)<Max_order  && Trade_sell && signal==1) {OrderSend(Symbol(),OP_SELL,xlot(1),Bid,3,sls, tps,Nama_EA,Magic,0,Red); wk=Time[0];  }

if(money()>0){
if(Bid>ma)   closeall(0);
if(Ask<ma)   closeall(1);
}


   return(0);
  }
//+------------------------------------------------------------------+

int Jam_trade()
{
   bool trade = false;
   if(Mulai_Jam > Akhir_Jam){
     if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true;
   } else
     if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;

   return (trade);
}

int jumlahorder( int tipe)
{
int total=0;
for(int i=0; i<OrdersTotal(); i++)
  {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic || OrderType()!=tipe) continue;
     total++;
  }

return(total);
}
double NR(double thelot)
{
    double maxlots = MarketInfo(Symbol(), MODE_MAXLOT),
    minilot = MarketInfo(Symbol(), MODE_MINLOT),
    lstep = MarketInfo(Symbol(), MODE_LOTSTEP);
    double lots = lstep * NormalizeDouble(thelot / lstep, 0);
    lots = MathMax(MathMin(maxlots, lots), minilot);
    return (lots);
}

void dtrailing()
{
for(int i=0; i<OrdersTotal(); i++){
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic ) continue;
        if(OrderType()==OP_BUY)  {
         if(Bid-OrderOpenPrice()>pt*TrailingStop)  {
           if((OrderStopLoss()<Bid-pt*TrailingStop) || (OrderStopLoss()==0)) {
              OrderModify(OrderTicket(),OrderOpenPrice(),Bid-pt*TrailingStop,OrderTakeProfit(),0,Green);
              return(0);
              }
              }
           }
        if(OrderType()==OP_SELL)  {
         if((OrderOpenPrice()-Ask)>(pt*TrailingStop)){
           if(OrderStopLoss()>(Ask+pt*TrailingStop) || (OrderStopLoss()==0)){
              OrderModify(OrderTicket(),OrderOpenPrice(),Ask+pt*TrailingStop,OrderTakeProfit(),0,Red);
              return(0);
              }
              }
           }
     }
 
}
void closeall(int m)
{
 for (int i = OrdersTotal() - 1; i >= 0; i--) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol() || OrderMagicNumber()!=Magic || m!= OrderType()) continue;
  if (OrderType() > 1) OrderDelete(OrderTicket());
   else {
    if (OrderType() == 0) OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE);
    else               OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE);
  }
 }
}
double money()
{
 double dp = 0;
 int i;
 for (i = 0; i < OrdersTotal(); i++) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol()  || OrderMagicNumber()!=Magic) continue;
  dp += OrderProfit();
 }
 return(dp);
}

int trad()
{
 int type,dp; double opb,ops,lastlotb,lastlots;
  for (int i = 0; i < OrdersTotal(); i++) {
   if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
   if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
     type=OrderType();
   if(type==0)opb = OrderOpenPrice();
   if(type==1)ops = OrderOpenPrice();
  }
   double as = opb - Jarak_order * pt;
   double bi = ops + Jarak_order * pt;
   if ( Ask <= as &&  jumlahorder(0)> 0 ) dp=1;
 if ( Bid >= bi &&  jumlahorder(1)> 0 ) dp=2;

return(dp);
}
double xlot(int m)
{
 double ylot,dlot;
  for (int i = 0; i < OrdersTotal(); i++) {
   if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
   if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic ||OrderType()!=m) continue;
     dlot=OrderLots();
     }
if(OrderType()==m)ylot=NR(Lots*MathPow(DiMarti,jumlahorder(m)));
return(ylot);
}
void label()
{
 Comment("\n ",
   "\n ",
   "\n ------------------------------------------------",
   "\n :: =>+Jum+AvZigzag+<=",
   "\n :: =>JumForex.blogspot.com<=",
   "\n ------------------------------------------------",
   "\n :: Spread                 : ", MarketInfo(Symbol(), MODE_SPREAD),
   "\n :: Leverage               : 1 : ", AccountLeverage(),
   "\n :: Jam Server             :", Hour(), ":", Minute(),
   "\n ------------------------------------------------",
   "\n :: Equity sekarang        : ", AccountEquity(),"  $",
   "\n :: Target_Equety          : ", Target_Equety ,"  $",
   "\n ------------------------------------------------",
   "\n :: Posisi floting         :",money(),"  $",
   "\n :: Jumlah level           :",jumlahorder(0)+jumlahorder(1),
   "\n ------------------------------------------------",
   "\n :: >>By: Jum69<<",
   "\n ------------------------------------------------");
//+------------------------------------------------------------------+
}

Senin, 02 Januari 2006

KAIO Trading Strategy

Strategi perdagangan KAIO Forex yang akan Anda pelajari akan sangat meningkatkan peluang Anda untuk membuat hasil yang konsisten sebagai pedagang Valas. Ini benar-benar dapat menggandakan atau bahkan melipatgandakan laba Anda pada satu perdagangan.

Tetapi sama berharganya dengan perdagangan KAIO, itu bisa sama merusaknya jika digunakan secara tidak benar. Itulah sebabnya saya ingin meluangkan waktu hari ini untuk membimbing Anda melalui bagaimana saya menggunakan strategi ini untuk menggandakan potensi keuntungan saya.

Pada akhir pelajaran ini, Anda akan memahami strategi KAIO di dalam dan luar. Anda akan terbiasa dengan dinamika di belakang strategi serta mekanisme yang membuatnya sangat menguntungkan. Tetapi yang terpenting, Anda akan tahu bagaimana menggandakan atau bahkan melipatgandakan laba Anda pada satu perdagangan.

Sebelum kita masuk ke sisi teknis, penting untuk terlebih dahulu memahami dasar-dasar KAIO.

Pada akhir pelajaran ini, Anda akan memahami strategi KAIO di dalam dan luar. Anda akan terbiasa dengan dinamika di belakang strategi serta mekanisme yang membuatnya sangat menguntungkan. Tetapi yang terpenting, Anda akan tahu bagaimana menggandakan atau bahkan melipatgandakan laba Anda pada satu perdagangan.

Ketika Anda benar - Anda harus benar, dan ketika Anda salah - Anda harus sedikit salah. Ini harus menjadi mentalitas Anda jika Anda ingin menjadi trader Forex yang selalu menguntungkan.

Perdagangan KAIO sangat cocok dengan mentalitas ini karena memadukan perdagangan Anda yang menang menjadi dua atau tiga kali potensi keuntungan awal sekaligus mengurangi eksposur Anda secara keseluruhan.

Disinilah letak bagian terbaik tentang perdagangan KAIO - jika dilakukan dengan benar, Anda tidak membuka diri terhadap risiko tambahan apa pun. Bahkan, Anda sebenarnya mengurangi risiko Anda karena perdagangan bergerak ke arah Anda.

Ilustrasi di bawah ini menunjukkan ide dasar di balik KAIO.

Ilustrasi di atas menunjukkan pasar yang berada dalam tren naik yang jelas, membuat harga tertinggi dan terendah lebih tinggi. Ini adalah pola "tangga langkah" yang bagus di mana pasar terus-menerus melanggar resistansi dan kemudian menguji ulang resistensi tersebut sebagai dukungan baru. Kondisi pasar seperti ini ideal untuk mendaki perdagangan yang menguntungkan.

Urutan pembelian awal dalam ilustrasi di atas dipicu ketika pasar menguji ulang resistensi sebelumnya sebagai dukungan baru. Pesanan pembelian kedua dan ketiga serupa dengan yang pertama, yang keduanya dipicu ketika pasar menguji kembali level resistensi sebelumnya sebagai dukungan baru.

Perlu diingat bahwa pasar harus menembus setiap level dan kemudian menunjukkan tanda-tanda pegangan untuk membenarkan penambahan ke posisi semula. Inilah sebabnya mengapa memiliki kecenderungan kuat di tempat adalah persyaratan untuk piramida yang efektif.

Sekarang setelah Anda memahami dasar-dasar piramida, mari masuk ke dalam mekanisme di balik perdagangan piramida sebagai strategi.

Kunci untuk melakukan KAIO yang sukses adalah dengan selalu mempertahankan rasio risiko terhadap imbalan yang tepat, yang mengatakan bahwa risiko Anda tidak akan pernah lebih besar dari setengah potensi imbalan. Jadi, jika target laba Anda adalah 200 pips, stop loss Anda harus tidak lebih dari 100 pips. Ini mencapai rasio risk to reward 1: 2, juga dikenal sebagai "2R".

Mari kita lihat ilustrasi lain, hanya saja kali ini kita akan menerapkan penentuan ukuran posisi dan strategi stop loss yang tepat.

Dengan menggunakan akun hipotetis $ 20.000, kami akan membeli 40.000 unit (4 lot mini) pada pengujian ulang setiap tingkat kunci. Target laba untuk setiap posisi bervariasi, sedangkan stop loss untuk setiap posisi baru adalah 100 pips.

Mari kita telusuri contoh ini dimulai dengan pembelian awal sebanyak 40.000 unit. Misalnya, kami akan berasumsi bahwa pasar yang diwakili di atas berada dalam tren naik yang kuat, jadi momentum ada di pihak kami.
  1. Pasar menembus level resistensi, dan setelah menguji ulang level sebagai support baru Anda melihat pin pin bullish, jadi Anda membeli 40.000 unit (risiko 2%)
  2. Anda memutuskan bahwa Anda akan membiarkan perdagangan ini berjalan karena sekali lagi, Anda memperdagangkan pasar yang berada dalam tren naik yang kuat
  3. Pasar menerobos level resistensi kedua dan kembali menguji ulang sebagai dukungan baru
  4. Anda melihat pasar bertahan di atas level dukungan baru sehingga Anda memutuskan untuk membeli 40.000 unit tambahan dan melacak stop loss Anda di belakang posisi kedua
  5. Sekali lagi, pasar menerobos level kunci dan menguji ulang sebagai dukungan baru
  6. Melihat kekuatan yang terus berlanjut, Anda memutuskan untuk membeli 40.000 unit lagi dan kembali berhenti di belakang posisi ketiga
Itu banyak beli! Pada titik ini Anda telah membangun ukuran posisi yang cukup besar dari 120.000 unit yang berisiko. Atau itu? Ukuran total posisi sebenarnya adalah 120.000 unit, tetapi berapa banyak dari itu sebenarnya berisiko?

Tidak ada! Bahkan pada saat Anda menambahkan posisi ketiga sebesar 40.000, skenario terburuk adalah Anda menghasilkan laba 6%.

Apa potensi keuntungan jika pasar melakukan perjalanan 200 pips lagi setelah membeli blok ketiga sebanyak 40.000 unit?

Keuntungan 24% besar.

Bagaimana itu mungkin, Anda bertanya?

Mari kita cari beberapa angka untuk mencari tahu.

Sekarang setelah Anda memahami dinamika di balik pyramiding, mari gali lebih dalam dan cari tahu mengapa itu merupakan strategi yang menguntungkan.

Ilustrasi di bawah ini menunjukkan contoh sebelumnya, hanya saja kali ini kami menyertakan potensi keuntungan bersama dengan profil risiko setiap entri.

Di sinilah keajaiban sejati terjadi. Perhatikan bagaimana potensi keuntungan untuk setiap posisi tambahan diperparah di seluruh perdagangan, sementara risiko terus dikurangi.

Entri awal akan menghasilkan laba 12%, yang cukup besar. Namun, dengan melakukan KAIO, kami dapat menggandakan profit pada perdagangan yang sama sambil mengurangi eksposur keseluruhan kami.

Mari kita lihat skenario terbaik dan terburuk untuk setiap langkah dalam perdagangan ini.

Blok pertama sebanyak 40.000 unit
Kasus terburuk: 2% kerugian

Kasus terbaik: 12% untung

Blok kedua sebanyak 40.000 unit
Skenario terburuk: Break-even (+ 2% dari blok pertama dan -2% dari yang kedua)

Skenario terbaik: 20% untung (+ 12% dari blok pertama dan + 8% dari yang kedua)

Blok ketiga dan terakhir sebanyak 40.000 unit
Skenario terburuk: 6% untung (+ 6% dari blok pertama, + 2% dari yang kedua dan -2% dari yang ketiga)

Skenario terbaik: 24% untung (+ 12% dari blok pertama, + 8% dari yang kedua dan + 4% dari yang ketiga)

Seperti yang Anda lihat dari angka-angka di atas, skenario terburuk pada titik mana pun dalam perdagangan adalah kerugian 2%, sementara skenario kasus terbaik adalah 24% laba. Ini membuat perdagangan piramida tidak hanya sangat menguntungkan tetapi jauh lebih menguntungkan dibandingkan dengan kebanyakan strategi perdagangan lainnya di luar sana.

Perdagangan KAIO dapat menjadi cara yang sangat menguntungkan untuk menambah keuntungan Anda dalam perdagangan yang sedang trend. Namun, itu bukan tanpa peringatan dan tidak boleh digunakan secara berlebihan. Jika Anda menemukan diri Anda mencoba menskalakan lebih dari satu perdagangan per bulan, ada kemungkinan besar Anda tidak cukup selektif tentang perdagangan mana yang harus ditingkatkan.

Mengetahui kapan menggunakan piramida membutuhkan banyak latihan, seperti halnya pelaksanaan yang tepat tidak memerlukan sedikit perencanaan. Tetapi potensi keuntungan adalah layak waktu dan usaha.

Last but not least, jangan serakah. Terlalu mudah untuk jatuh ke dalam perangkap karena berpikir bahwa pasar tidak akan berbalik pada Anda. Ingat, pasar pasang surut. Bahkan tren terkuat mengalami kemunduran hingga rata-rata.

Memiliki rencana keluar yang digariskan sebelum memasuki perdagangan pertama dalam suatu seri.

Ini memungkinkan Anda untuk menentukan rencana Anda saat dalam keadaan pikiran yang netral. Jika Anda menunggu sampai Anda melakukan perdagangan sebelum menentukan rencana keluar, ada peluang baik emosi Anda akan mendapatkan yang terbaik dari Anda.

Berikut adalah beberapa hal yang perlu diingat ketika menggunakan strategi perdagangan KAIO.

  1. Hanya gunakan strategi KAIO di pasar yang kuat dan sedang tren
  2. Selalu tentukan level dukungan dan resistensi Anda sebelum memasuki perdagangan (rencanakan perdagangan Anda dan perdagangkan rencana Anda)
  3. Ketahuilah rencana keluar Anda di mana Anda ingin membukukan laba sebelum memasuki perdagangan pertama
  4. Mempertahankan rasio risiko dan penghargaan yang tepat setiap saat
  5. Arahkan stop loss Anda di belakang setiap posisi baru untuk mengurangi eksposur Anda
  6. Buat semuanya tetap sederhana dengan menggunakan ukuran posisi yang sama untuk setiap blok pembelian atau penjualan
  7. Jangan menjadi serakah - tetap berpegang pada rencana Anda apa pun yang terjadi

Di atas segalanya, ingatlah untuk menggunakan KAIO dengan hemat. Ini bukan teknik yang ingin Anda gunakan di setiap perdagangan atau bahkan setiap perdagangan lainnya.

Tetapi jika Anda dapat menangkap hanya tiga atau empat perdagangan dalam bentuk KAIO per tahun, Anda melihat potensi keuntungan 60% hingga 80% dari segelintir perdagangan. Gabungkan itu dengan fakta bahwa Anda hanya mengambil risiko 2% setiap waktu, dan Anda memiliki strategi yang menguntungkan karena menguntungkan.

Semoga info ini bermanfaat.

Salam CUan :)