Diberdayakan oleh Blogger.

Selasa, 10 Januari 2012

PENJELASAN EA SOULTIMATE V2

sumber : klik sini

Kali ini saya ingin menjelaskan kepada anda tentang EA Soultimate v2.Dasar pertimbangan karena EA ini yang paling banyak mendownload padahal saya share paling akhir dibanding EA-EA yang lain.

Oke langsung saja Gan.....


#property copyright "Copyright © 2011, EA Compilator"
#property link      "http://assassintrader.blogspot.com"

extern string nameEA = "SOUltimate v2";
extern int MaxTrades = 12;
extern int Pips = 15;
extern double TakeProfit = 60.0;
extern double TrailingStop = 0.0;
extern double InitialStop = 0.0;
extern bool RunNonStop = TRUE;
int gi_156 = 10;
int gi_160 = 10;
int gi_164 = 15;
int gi_168 = 20;
int gi_172 = 25;
int gi_176 = 30;
int gi_180 = 35;
int gi_184 = 40;
int gi_188 = 45;
int gi_192 = 50;
int gi_196 = 0;
int gi_200 = 8;
int gi_204 = 0;
extern double FirstOrderLots = 0.01;
int g_count_216 = 0;
int g_pos_220 = 0;
double g_lots_224 = 0.1;
int g_slippage_232 = 3;
double g_price_236 = 0.0;
double g_price_244 = 0.0;
double g_ask_252 = 0.0;
double g_bid_260 = 0.0;
double gd_268 = 0.0;
int g_cmd_276 = OP_BUY;
int gi_280 = 0;
bool gi_284 = TRUE;
double g_ord_open_price_288 = 0.0;
int gi_296 = 0;
double gd_300 = 0.0;
int g_ticket_308 = 0;
int gi_312 = 0;
double g_price_316 = 0.0;
double g_ord_lots_324 = 0.0;
double g_tickvalue_332 = 0.0;
string gs_unused_340 = "";
string gs_348 = "";
double gd_356 = 0.0;
double gd_364 = 12.0;
double gd_372 = 0.0;

int init() {
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   if (gd_372 == 1.0) {
      if (gd_356 != 0.0) gd_268 = MathCeil(AccountBalance() * gd_364 / 10000.0);
      else gd_268 = g_lots_224;
   } else {
      if (gd_356 != 0.0) gd_268 = MathCeil(AccountBalance() * gd_364 / 10000.0) / 10.0;
      else gd_268 = g_lots_224;
   }
   gd_268 = FirstOrderLots;
   if (gd_268 > 100.0) gd_268 = 100;
   if (gd_268 < 0.01) gd_268 = 0.1;
   g_count_216 = 0;
   for (g_pos_220 = 0; g_pos_220 < OrdersTotal(); g_pos_220++) {
      OrderSelect(g_pos_220, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) g_count_216++;
   }
   g_tickvalue_332 = MarketInfo(Symbol(), MODE_TICKVALUE);
   if (g_tickvalue_332 == 0.0) g_tickvalue_332 = 5;
   if (gi_296 > g_count_216) {
      for (g_pos_220 = OrdersTotal(); g_pos_220 >= 0; g_pos_220--) {
         OrderSelect(g_pos_220, SELECT_BY_POS, MODE_TRADES);
         g_cmd_276 = OrderType();
         if (OrderSymbol() == Symbol()) {
            if (g_cmd_276 == OP_BUY) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), g_slippage_232, Blue);
            if (g_cmd_276 == OP_SELL) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), g_slippage_232, Red);
            return (0);
         }
      }
   }
   gi_296 = g_count_216;
   if (g_count_216 >= MaxTrades) gi_284 = FALSE;
   else gi_284 = TRUE;
   if (g_ord_open_price_288 == 0.0) {
      for (g_pos_220 = 0; g_pos_220 < OrdersTotal(); g_pos_220++) {
         OrderSelect(g_pos_220, SELECT_BY_POS, MODE_TRADES);
         g_cmd_276 = OrderType();
         if (OrderSymbol() == Symbol()) {
            g_ord_open_price_288 = OrderOpenPrice();
            if (g_cmd_276 == OP_BUY) gi_280 = 2;
            if (g_cmd_276 == OP_SELL) gi_280 = 1;
         }
      }
   }
   if (g_count_216 < 1) {
      if (RunNonStop == TRUE && Hour() >= 0) {
   Comment(" ---------------------------------------------",
      "\n :: EA SOUltimate v2 by EA Compilator...BISMILLAH Semoga Profit...\n","Forex Account Server:", AccountServer(),
      "\n :: Symbol                : ", Symbol(),
      "\n :: Date                  : ", Month(), "-", Day(), "-", Year(),
      "\n :: Spread                : ", MarketInfo(Symbol(), MODE_SPREAD),
      "\n :: Balance               : ", AccountBalance(),
      "\n :: Equity                : ", AccountEquity(),
      "\n :: Profit / Loss         : ", AccountProfit(),
      "\n :: Take Profit           : ", TakeProfit,
   "\n ---------------------------------------------------");
         gi_280 = 3;
         if (iStochastic(NULL, PERIOD_M30, 5, 3, 3, MODE_SMA, 20, MODE_MAIN, 0) > iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 80, MODE_MAIN, 1)) gi_280 = 2;
         if (iStochastic(NULL, PERIOD_M30, 5, 3, 3, MODE_SMA, 20, MODE_MAIN, 0) < iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 80, MODE_MAIN, 1)) gi_280 = 1;
         if (iStochastic(NULL, PERIOD_M30, 5, 3, 3, MODE_SMA, 20, MODE_MAIN, 0) == iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 80, MODE_MAIN, 1)) gi_280 = 3;
         if (gi_204 == 1) {
            if (gi_280 == 1) gi_280 = 2;
            else
               if (gi_280 == 2) gi_280 = 1;
         }
      }
   }
   for (g_pos_220 = OrdersTotal(); g_pos_220 >= 0; g_pos_220--) {
      OrderSelect(g_pos_220, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) {
         if (OrderType() == OP_SELL) {
            if (TrailingStop > 0.0) {
               if (OrderOpenPrice() - Ask >= (TrailingStop + Pips) * Point) {
                  if (OrderStopLoss() > Ask + Point * TrailingStop) {
                     OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderClosePrice() - TakeProfit * Point - TrailingStop * Point, 800, Purple);
                     return (0);
                  }
               }
            }
         }
         if (OrderType() == OP_BUY) {
            if (TrailingStop > 0.0) {
               if (Bid - OrderOpenPrice() >= (TrailingStop + Pips) * Point) {
                  if (OrderStopLoss() < Bid - Point * TrailingStop) {
                     OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderClosePrice() + TakeProfit * Point + TrailingStop * Point, 800, Yellow);
                     return (0);
                  }
               }
            }
         }
      }
   }
   gd_300 = 0;
   g_ticket_308 = 0;
   gi_312 = FALSE;
   g_price_316 = 0;
   g_ord_lots_324 = 0;
   for (g_pos_220 = 0; g_pos_220 < OrdersTotal(); g_pos_220++) {
      OrderSelect(g_pos_220, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) {
         g_ticket_308 = OrderTicket();
         if (OrderType() == OP_BUY) gi_312 = FALSE;
         if (OrderType() == OP_SELL) gi_312 = TRUE;
         g_price_316 = OrderClosePrice();
         g_ord_lots_324 = OrderLots();
         if (gi_312 == FALSE) {
            if (OrderClosePrice() < OrderOpenPrice()) gd_300 -= (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
            if (OrderClosePrice() > OrderOpenPrice()) gd_300 += (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
         }
         if (gi_312 == TRUE) {
            if (OrderClosePrice() > OrderOpenPrice()) gd_300 -= (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
            if (OrderClosePrice() < OrderOpenPrice()) gd_300 += (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
         }
      }
   }
   gd_300 *= g_tickvalue_332;
   gs_348 = "Profit: $" + DoubleToStr(gd_300, 2) + " +/-";
   if (g_count_216 >= MaxTrades - gi_200 && gi_196 == 1) {
      if (gd_300 >= gi_156) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_160) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_164) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_168) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_172) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_176) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_180) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_184) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_188) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
      }
      if (gd_300 >= gi_192) {
         OrderClose(g_ticket_308, g_ord_lots_324, g_price_316, g_slippage_232, Yellow);
         gi_284 = FALSE;
         return (0);
      }
   }
   if (!IsTesting())
      if (gi_280 == 3) gs_unused_340 = "                         ";
   if (gi_280 == 1 && gi_284) {
      if (Bid - g_ord_open_price_288 >= Pips * Point || g_count_216 < 1) {
         g_bid_260 = Bid;
         g_ord_open_price_288 = 0;
         if (TakeProfit == 0.0) g_price_244 = 0;
         else g_price_244 = g_bid_260 - TakeProfit * Point;
         if (InitialStop == 0.0) g_price_236 = 0;
         else g_price_236 = g_bid_260 + InitialStop * Point;
         if (g_count_216 != 0) {
            g_lots_224 = gd_268;
            for (g_pos_220 = 1; g_pos_220 <= g_count_216; g_pos_220++) {
               if (MaxTrades > 12) g_lots_224 = NormalizeDouble(2.0 * g_lots_224, 2);
               else g_lots_224 = NormalizeDouble(1.5 * g_lots_224, 2);
            }
         } else g_lots_224 = gd_268;
         if (g_lots_224 > 100.0) g_lots_224 = 100;
         OrderSend(Symbol(), OP_SELL, g_lots_224, g_bid_260, g_slippage_232, g_price_236, g_price_244, "Soultimate-SELL", 0, 0, Red);
         return (0);
      }
   }
   if (gi_280 == 2 && gi_284) {
      if (g_ord_open_price_288 - Ask >= Pips * Point || g_count_216 < 1) {
         g_ask_252 = Ask;
         g_ord_open_price_288 = 0;
         if (TakeProfit == 0.0) g_price_244 = 0;
         else g_price_244 = g_ask_252 + TakeProfit * Point;
         if (InitialStop == 0.0) g_price_236 = 0;
         else g_price_236 = g_ask_252 - InitialStop * Point;
         if (g_count_216 != 0) {
            g_lots_224 = gd_268;
            for (g_pos_220 = 1; g_pos_220 <= g_count_216; g_pos_220++) {
               if (MaxTrades > 12) g_lots_224 = NormalizeDouble(2.0 * g_lots_224, 2);
               else g_lots_224 = NormalizeDouble(1.5 * g_lots_224, 2);
            }
         } else g_lots_224 = gd_268;
         if (g_lots_224 > 100.0) g_lots_224 = 100;
         OrderSend(Symbol(), OP_BUY, g_lots_224, g_ask_252, g_slippage_232, g_price_236, g_price_244, "Soultimate-Buy", 0, 0, Blue);
         return (0);
      }
   }
   return (0);
}

Di atas adalah isi lengkap dari EA Soultimate v2.
Bila anda ingin melakukan setting sendiri berikut poin-poin yang bisa anda edit, perhatikan angka-angka yang saya tebali dan berwarna merah:
  • MaxTrades = 12, ini adalah setting untuk mengatur banyaknya level OP Averaging yang anda inginkan;
  •  Pips = 15, setting untuk mengatur jarak OP antar level Posisi Averaging dalam Pip;
  •  TakeProfit = 60.0, jumlah Take Profit yang kita inginkan, bila OP terakhir mencapai titik TP-nya maka OP-OP sebelumnya akan ikut close.
  •  FirstOrderLots = 0.01, setting lot awal yang ingin anda pakai, bila terjadi TP maka lot akan kembali lagi ke  lot awal;
  • NormalizeDouble(2.0, bila maxtrades anda setting lebih dr 12 level maka level 13 ke atas akan menggunakan lot 2 kalinya dr OP terakhir / sebelumnya;
  •  NormalizeDouble(1.5, bila OP level masih dibawah 12 level maka lot yang keluar adalah 1,5 kalinya dari OP terakhir / sebelumnya.Anda bisa merubah menjadi Martingale dengan merubah minimal 2 kalinya..
Nah untuk melakukan settingan EA Soultimate v2 sesuai kemauan anda cukup poin-poin di atas saja yang dirubah.Selamat mencoba...Happy Trading....Enjoys.


Belajar ngedit EA yuuk....
· · · 6 hours ago

0 komentar :

Posting Komentar

Blog Archive