加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SteadyWinner V5.0[MT4_EA]

(2013-03-23 21:22:40)
标签:

财经

分类: 外汇



SteadyWinner V5.0 的交易原理 


SteadyWinner  根據以下四個原理進行交易:
1.    順勢 而行 – 趨勢指標有很多,而本系統用的是最簡單的移動平均線(EMA) ,不過是用在不同時段的圖表上,以找出無論短期或長期都是順勢時才入市。這個方法看來很簡單,但十分有效。

2.    找一個好的 位置 入市 –  甚麼是好的入市時機?就是市場趨勢向上而出現回調時。因為回調以後,才有上升空間。賣出的原理一樣,在市場趨勢向下而出現回調時入市。一個好的入市位置比是否順勢更為重要。

3 .   找一個好的 位置 離場 – 每單都有設定止贏和止損,但也設有內部止贏和止損,如果開單後市況不理想,EA 會找一個較理想的位置及早離場,以減少損失。 

以上講的好像是老生常譚,大多數人都是這樣交易。以下我們會詳細解釋交易策略。這樣做並非常規,大部分EA都不會解釋交易策略,也許使用者也沒有興趣聽。如果你覺得這一段太長或太技術性,大可先跳過,有時間才慢慢看。

我們要詳加解釋,是因為從來信和網上論壇的討論中,我們覺得有許多用戶並不明白SteadyWinner的交易策略。這樣會影響他們使用EA時的信心,特別是在輸的時候。

以下是一幅顯示SteadyWinner交易的圖。橫貫畫面的那條線是EMA700,這是買與賣的分水線。當價格在EMA之上,我們只開買單。當價格在 EMA之下,我們只開賣單。我們同時在幾個不同時段的圖上都使這個方法,以找出市場的方向。我們使用EMA,但不是用來交易兩條平均線的交叉。
SteadyWinner V5.0 的交易原理 
SteadyWinner  根據以下四個原理進行交易:
1.    順勢 而行 – 趨勢指標有很多,而本系統用的是最簡單的移動平均線(EMA) ,不過是用在不同時段的圖表上,以找出無論短期或長期都是順勢時才入市。這個方法看來很簡單,但十分有效。

2.    找一個好的 位置 入市 –  甚麼是好的入市時機?就是市場趨勢向上而出現回調時。因為回調以後,才有上升空間。賣出的原理一樣,在市場趨勢向下而出現回調時入市。一個好的入市位置比是否順勢更為重要。

3 .   找一個好的 位置 離場 – 每單都有設定止贏和止損,但也設有內部止贏和止損,如果開單後市況不理想,EA 會找一個較理想的位置及早離場,以減少損失。 

以上講的好像是老生常譚,大多數人都是這樣交易。以下我們會詳細解釋交易策略。這樣做並非常規,大部分EA都不會解釋交易策略,也許使用者也沒有興趣聽。如果你覺得這一段太長或太技術性,大可先跳過,有時間才慢慢看。

我們要詳加解釋,是因為從來信和網上論壇的討論中,我們覺得有許多用戶並不明白SteadyWinner的交易策略。這樣會影響他們使用EA時的信心,特別是在輸的時候。

以下是一幅顯示SteadyWinner交易的圖。橫貫畫面的那條線是EMA700,這是買與賣的分水線。當價格在EMA之上,我們只開買單。當價格在 EMA之下,我們只開賣單。我們同時在幾個不同時段的圖上都使這個方法,以找出市場的方向。我們使用EMA,但不是用來交易兩條平均線的交叉。
 





資金管理

測試版只能交易 0.01, 0.02
這個自動交易系統的資金管理十分保守,非常安全。圖下方綠色的垂直線表示交易手數。贏的時候0.02,輸的時候退至最低的0.01。測試版在微型戶口只交易0.01和0.02手, 在迷你戶口只交易0.1和0.2手,在標準戶口只交易1.0和2.0手。測試版的手數是固定的,當然不是那麼好。如果你喜歡這個系統,最好升級至完整版。 

V5.0完整版  - 以戶口 2% 交易
V5.0完整版的資金管理原理一樣,輸的時候退至最低的0.01,但贏的時候,則永遠以戶口的2%進行交易,而且手數能按戶口的增長而增加,從而產生不斷滾存的複利效應。這種效應令本金越滾越大,成為利潤的主要來源。 

為什麼是 2 % ? 
許多使用者來信詢問,為甚麼SteadyWinner不像他們用過的其他EA,可以自行輸入手數(lotsize)?在這一點上, SteadyWinner跟別的系統是不同的。它永遠用戶口的2%來交易。因為2%是最合理的手數。這是有理論根據的。

長久以來,已經有人研究賭博和風險理論。他們發現,2%是最合理的風險。假如我是個賭徒,手上有10000元,我該賭多大一注呢?答案是200元。如果我輸了,我只輸掉本金的2%,仍然有力番本。如果我們下注300元,便是風險太大了。如果輸起來,會比下注2%的快很多。相反,如果下注100元,便是有點保守,贏起來時不及下注2%的多。 

在外匯交易,風險主要由摃捍和止損有多大來決定。例如我們的可用資金是10000元,止損是100點,那麼我們每手應為0.20手。如果贏了一點,,可以試0.21手,如果輸一點,,應退到0.19手。這樣我們便可以在風險和增長之間保持一種平衡。
新增參數
V5.0開放了一些新的參數,,供用戶輸入他們喜歡的設定。其中包括PerentToRisk 風險系數(0.50% -6.00%) 和 TestLotScale(0.00 - 1,00),即在輸了之後用多大的手數交易。 

止損和止贏
為了使用方便,V5.0會將目前的交易手數(lotsize)顯示於屏幕上。同時還會顯示止損和止贏等資料。
V5.0的止損(stoploss)是100點,止贏(take profit) 55點,移動止損(trailing stop)是22點。用戶可在屏幕上看見這些資料。
 
 

 

2012-12-15 13:47 上传
下载附件 (91.59 KB)

源码:

 

 

#property copyright "SteadyWinner"
#property link      "SteadyWinner.com, steadywinner@gmail.com"

string gs_unused_76 = "SteadyWinner V5.0";
int g_acc_number_84 = 0;
double gd_88;
double gd_96;
double gd_104;
double gd_112;
double gd_120;
double gd_128;
double gd_136;
double gd_144;
double gd_152 = 900.0;
double gd_160 = 3600.0;
extern string NoteSpread = "Max Spreads: 2.0 - 4.0";
extern double MaxSpread = 4.0;
extern bool   MoneyManagement = True;
extern double PercentRisk     = 5.0;
extern double LotSize         = 0.1;
extern string NoteFri = "Trade after Friday Cut Hour";
extern bool   TradeLateFri = FALSE;
extern int    FridayCutHour = 15;
extern string NoteDec = "Trade on December Cut Date (15)";
int gi_208 = 15;
extern bool   TradeLateDec = FALSE;
extern string NoteBroker = "Broker Friendly Settings";
extern bool   PipStepping = FALSE;
extern bool   FXOpenECN = FALSE;
extern string NoteEA = "Magic No.& Comments, pls change it";
extern int    MagicNo = 338833;
extern string CommentTxt = "SW-V5";
string gs_unused_252 = "Professional Settings";
double gd_260 = 110.0;
double gd_268 = 55.0;
double gd_276 = 22.0;
double gd_284 = 5.0;
double gd_292 = 0.0;
double g_lots_300 = 0.1;
double gd_308 = 0.0;
double gd_324;
double gd_316;
double gd_332;
double g_order_profit_340 = 0.0;
double gd_348 = 0.0;
double g_maxlot_356 = 0.0;
double g_lotstep_364 = 0.0;
double gd_372 = 0.0;
int g_slippage_380 = 3;
bool gi_384 = TRUE;
int gi_388 = 0;
int gi_392 = 23;
int gi_396 = -1;
bool gi_400 = TRUE;
string gs_404 = "alert.wav";
int g_color_412 = Blue;
int g_color_416 = Aqua;
int g_color_420 = Red;
int g_color_424 = Aqua;
string gs_unused_428 = "0";
string gs_dummy_436;
string g_text_444 = "Smart MM finds nothing wrong.";
int g_color_452 = LightGreen;

void init() {
   string ls_60;
   string ls_68;
   string ls_76;
   string ls_84;
   MaxSpread = f0_5(MaxSpread, 2.0, 4.0, 1);
   FridayCutHour = f0_5(FridayCutHour, 0, 23, 0);
   gd_88 = gd_260;
   gd_96 = gd_260;
   gd_104 = gd_268;
   gd_112 = gd_268;
   gd_120 = gd_276;
   gd_128 = gd_276;
   gd_136 = gd_284;
   gd_144 = gd_284;
   if (PipStepping) gd_292 = 1;
   gd_372 = f0_6(Symbol());
   f0_4();
   int li_0 = 20;
   int li_4 = 40;
   int li_8 = 60;
   int li_12 = 80;
   int li_16 = 100;
   int li_20 = 120;
   int li_24 = 140;
   int li_28 = 160;
   int li_32 = 180;
   int li_36 = 200;
   int li_40 = 220;
   int li_44 = 240;
   int li_48 = 10;
   int li_52 = 200;
   int li_56 = 380;
   f0_8("Title1", li_0 - 5, li_48, "SteadyWinner V5.0 - Place on EURUSD(H1) ", 13, "Verdana", MediumSeaGreen);
   f0_8("Title2", li_4, li_48, "http://steadywinner.com    steadywinner@gmail.com", 9, "Verdana", White);
   f0_8("Line1a", li_8, li_48, "---------------------------", 10, "Verdana", Goldenrod);
   f0_8("Line1b", li_8, li_52, "--- EA Settings ------------------------------", 10, "Verdana", Goldenrod);
   f0_8("txtRisk", li_12, li_48, "Trade Lot Risk%:  " + DoubleToStr(PercentRisk, 1), 9, "Verdana", Gold);
   f0_8("txtScale", li_12, li_52, "Test Lot Scale:     " + DoubleToStr(PercentRisk, 1), 9, "Verdana", Gold);
   f0_8("txtMaxSpread", li_12, li_56, "Max Spread:    " + DoubleToStr(MaxSpread, 1), 9, "Verdana", Gold);
   f0_8("TxtTradeLots", li_16, li_48, "Trade Lot Size:     " + DoubleToStr(gd_316, 2), 9, "Verdana", Gold);
   f0_8("TxtTestLots", li_16, li_52, "Test Lot Size:       " + DoubleToStr(gd_324, 2), 9, "Verdana", Gold);
   f0_8("TxtCurSpread", li_16, li_56, "Now Spread:   " + DoubleToStr(gd_332, 1), 9, "Verdana", Gold);
   f0_8("TxtMaxLot", li_20, li_48, "Max Lots:             " + DoubleToStr(g_maxlot_356, 2), 9, "Verdana", Silver);
   f0_8("TxtMinLot", li_20, li_52, "Min Lots:              " + DoubleToStr(gd_348, 2), 9, "Verdana", Silver);
   f0_8("TxtLotStep", li_20, li_56, "Lot Step:         " + DoubleToStr(g_lotstep_364, 2), 9, "Verdana", Silver);
   f0_8("TxtSL", li_24, li_48, "Stop Loss:           " + DoubleToStr(gd_260, 0), 9, "Verdana", Silver);
   f0_8("TxtTP", li_24, li_52, "Take Profit:          " + DoubleToStr(gd_268, 0), 9, "Verdana", Silver);
   f0_8("TxtTS", li_28, li_48, "Trailing Stop:       " + DoubleToStr(gd_276, 0), 9, "Verdana", Silver);
   f0_8("TxtTR", li_28, li_52, "Trailing Reserve:  " + DoubleToStr(gd_284, 0), 9, "Verdana", Silver);
   if (TradeLateFri) ls_60 = "Trade after Friday " + DoubleToStr(FridayCutHour, 0) + ":00:        TEST LOT ONLY";
   else ls_60 = "Trade after Friday " + DoubleToStr(FridayCutHour, 0) + ":00:        NO";
   f0_8("TxtFri", li_32, li_48, ls_60, 9, "Verdana", Gold);
   if (PipStepping) ls_76 = "YES";
   else ls_76 = "NO";
   f0_8("TxtPipStepping", li_32, li_56, "Pip Stepping:  " + ls_76, 9, "Verdana", Gold);
   if (TradeLateDec) ls_68 = "Trade after December " + DoubleToStr(gi_208, 0) + "th:    TEST LOT ONLY";
   else ls_68 = "Trade after December " + DoubleToStr(gi_208, 0) + "th:    NO";
   f0_8("TxtDec", li_36, li_48, ls_68, 9, "Verdana", Gold);
   if (FXOpenECN) ls_84 = "YES";
   else ls_84 = "NO";
   f0_8("TxtFXOpenECN", li_36, li_56, "FXOpen ECN:  " + ls_84, 9, "Verdana", Gold);
   f0_8("Line2a", li_40, li_48, "---------------------------", 10, "Verdana", Goldenrod);
   f0_8("Line2b", li_40, li_52, "---------------------------------------------", 10, "Verdana", Goldenrod);
   f0_8("TxtSmartMM", li_44, li_48, g_text_444, 9, "Verdana", g_color_452);
}

void deinit() {
   ObjectDelete("Title1");
   ObjectDelete("Title2");
   ObjectDelete("Line1a");
   ObjectDelete("Line1b");
   ObjectDelete("TxtRisk");
   ObjectDelete("TxtScale");
   ObjectDelete("TxtMaxSpread");
   ObjectDelete("TxtTradeLots");
   ObjectDelete("TxtTestLots");
   ObjectDelete("TxtCurSpread");
   ObjectDelete("TxtMaxLot");
   ObjectDelete("TxtMinLot");
   ObjectDelete("TxtLotStep");
   ObjectDelete("TxtSL");
   ObjectDelete("TxtTP");
   ObjectDelete("TxtTS");
   ObjectDelete("TxtTR");
   ObjectDelete("TxtFri");
   ObjectDelete("TxtPipStepping");
   ObjectDelete("TxtDec");
   ObjectDelete("TxtFXOpenECN");
   ObjectDelete("Line2a");
   ObjectDelete("Line2b");
   ObjectDelete("TxtSmartMM");
}

int start() {
   int is_closed_128;
   int is_closed_132;
   bool li_140;
   f0_4();
   ObjectSetText("TxtTradeLots", "Trade Lot Size:     " + DoubleToStr(LotSize, 2), 9, "Verdana", Gold);
   ObjectSetText("TxtTestLots", "Test Lot Size:       " + DoubleToStr(gd_324, 2), 9, "Verdana", Gold);
   ObjectSetText("TxtCurSpread", "Now Spread:   " + DoubleToStr(gd_332, 1), 9, "Verdana", Gold);
   ObjectSetText("TxtSmartMM", g_text_444, 9, "Verdana", g_color_452);
   if (gi_384) {
      if (!(Hour() >= gi_388 && Hour() <= gi_392)) {
         Comment("Time for trade has not come else!");
         return (0);
      }
   }
   if (Bars < 100) {
      Print("bars less than 100");
      return (0);
   }
   if (g_acc_number_84 > 0 && g_acc_number_84 != AccountNumber()) {
      Comment("Trade on account :" + AccountNumber() + " FORBIDDEN!");
      return (0);
   }
   double ima_0 = iMA(NULL, PERIOD_M15, 50, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_8 = iMA(NULL, PERIOD_M15, 100, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_16 = iMA(NULL, PERIOD_M15, 200, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_24 = iMA(NULL, PERIOD_M15, 300, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_32 = iMA(NULL, PERIOD_M15, 400, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_40 = iMA(NULL, PERIOD_M15, 500, 0, MODE_EMA, PRICE_CLOSE, 0);
   double iwpr_48 = iWPR(NULL, PERIOD_H1, 5, 0);
   double imfi_56 = iMFI(NULL, PERIOD_M30, 1, 0);
   double iclose_64 = iClose(NULL, PERIOD_M1, 0);
   double ima_72 = iMA(NULL, PERIOD_M1, 700, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_80 = iMA(NULL, PERIOD_M5, 700, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_88 = iMA(NULL, PERIOD_M15, 700, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_96 = iMA(NULL, PERIOD_M30, 700, 0, MODE_EMA, PRICE_CLOSE, 0);
   double iac_104 = iAC(NULL, PERIOD_M1, 0);
   bool bool_112 = FALSE;
   bool bool_116 = FALSE;
   bool bool_120 = FALSE;
   bool bool_124 = FALSE;
   if (!f0_0()) {
      if (g_order_profit_340 >= 0.0) {
         bool_112 = iac_104 < 0.0 && imfi_56 < 0.1 && iwpr_48 < -99.99 && ima_72 < iclose_64 && ima_80 < iclose_64 && ima_88 < iclose_64 && ima_96 < iclose_64 && ima_8 > ima_16 &&
            ima_16 > ima_24 && ima_24 > ima_32 && ima_32 > ima_40;
         bool_116 = iac_104 > 0.0 && imfi_56 > 99.9 && iwpr_48 > -0.01 && ima_72 > iclose_64 && ima_80 > iclose_64 && ima_88 > iclose_64 && ima_96 > iclose_64 && ima_8 < ima_16 &&
            ima_16 < ima_24 && ima_24 < ima_32 && ima_32 < ima_40;
      }
      if (g_order_profit_340 < 0.0) {
         bool_112 = iac_104 < 0.0 && iwpr_48 < -50.0 && ima_8 < ima_16;
         bool_116 = iac_104 > 0.0 && iwpr_48 > -50.0 && ima_8 > ima_16;
      }
      gi_396 = -1;
      if (bool_112) {
         f0_4();
         gi_396 = 0;
         gd_308 = 0;
         f0_2();
         return (0);
      }
      if (bool_116) {
         f0_4();
         gi_396 = 0;
         gd_308 = 0;
         f0_3();
         return (0);
      }
   }
   if (f0_0()) {
      if (gi_396 < 1) {
         if (OrderProfit() >= 0.0 && TimeCurrent() - OrderOpenTime() > gd_160) {
            bool_120 = iac_104 > 0.0 && iwpr_48 > -50.0 && ima_8 > ima_16;
            bool_124 = iac_104 < 0.0 && iwpr_48 < -50.0 && ima_8 < ima_16;
         }
         if (OrderProfit() < 0.0 && TimeCurrent() - OrderOpenTime() > gd_152) {
            bool_120 = iac_104 > 0.0 && iwpr_48 > -15.0 && ima_8 > ima_16;
            bool_124 = iac_104 < 0.0 && iwpr_48 < -85.0 && ima_8 < ima_16;
         }
      }
      if (OrderType() == OP_BUY) {
         if (bool_120) {
            is_closed_128 = OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_380, g_color_416);
            if (is_closed_128 && gi_400) PlaySound(gs_404);
            return (0);
         }
      }
      if (OrderType() == OP_SELL) {
         if (bool_124) {
            is_closed_132 = OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_380, g_color_424);
            if (is_closed_132 && gi_400) PlaySound(gs_404);
            return (0);
         }
      }
   }
   if (gd_120 > 0.0 || gd_128 > 0.0) {
      for (int pos_136 = 0; pos_136 < OrdersTotal(); pos_136++) {
         if (OrderSelect(pos_136, SELECT_BY_POS, MODE_TRADES)) {
            li_140 = TRUE;
            if (MagicNo > 0 && OrderMagicNumber() != MagicNo) li_140 = FALSE;
            if (OrderSymbol() == Symbol() && li_140) {
               if (OrderType() == OP_BUY && gd_120 > 0.0) {
                  if (Bid - OrderOpenPrice() > gd_120 * gd_372) {
                     if (OrderStopLoss() < Bid - (gd_120 + gd_308) * gd_372) {
                        if (gi_396 == 0) {
                           f0_1(Bid - NormalizeDouble((gd_120 - gd_136) * gd_372, 5));
                           gi_396 = 1;
                           gd_308 = gd_292;
                        } else f0_1(Bid - NormalizeDouble(gd_120 * gd_372, 5));
                     }
                  }
               }
               if (OrderType() == OP_SELL) {
                  if (OrderOpenPrice() - Ask > gd_128 * gd_372) {
                     if (OrderStopLoss() > Ask + (gd_128 + gd_308) * gd_372 || OrderStopLoss() == 0.0) {
                        if (gi_396 == 0) {
                           f0_1(Ask + NormalizeDouble((gd_128 - gd_144) * gd_372, 5));
                           gi_396 = 1;
                           gd_308 = gd_292;
                           continue;
                        }
                        f0_1(Ask + NormalizeDouble(gd_128 * gd_372, 5));
                     }
                  }
               }
            }
         }
      }
   }
   return (0);
}

bool f0_0() {
   bool li_4;
   for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
      if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
         li_4 = TRUE;
         if (MagicNo > 0 && OrderMagicNumber() != MagicNo) li_4 = FALSE;
         if (OrderSymbol() == Symbol() && li_4) return (TRUE);
      }
   }
   return (FALSE);
}

void f0_1(double ad_0) {
   bool bool_8 = OrderModify(OrderTicket(), NormalizeDouble(OrderOpenPrice(), 5), NormalizeDouble(ad_0, 5), NormalizeDouble(OrderTakeProfit(), 5), 0, CLR_NONE);
   if (bool_8 && gi_400) PlaySound(gs_404);
}

void f0_2() {
   double price_0;
   double price_8;
   int ticket_16;
   if (g_lots_300 != 0.0) {
      price_0 = 0;
      price_8 = 0;
      ticket_16 = OrderSend(Symbol(), OP_BUY, g_lots_300, Ask, g_slippage_380, 0, 0, CommentTxt, MagicNo, 0, g_color_412);
      if (ticket_16 > -1) {
         OrderSelect(ticket_16, SELECT_BY_TICKET);
         if (gd_88 > 0.0) price_0 = NormalizeDouble(OrderOpenPrice() - gd_88 * gd_372, Digits);
         if (gd_104 > 0.0) price_8 = NormalizeDouble(OrderOpenPrice() + gd_104 * gd_372, Digits);
         OrderModify(OrderTicket(), OrderOpenPrice(), price_0, price_8, 0, Green);
      }
      if (ticket_16 > -1 && gi_400) PlaySound(gs_404);
   }
}

void f0_3() {
   double price_0;
   double price_8;
   int ticket_16;
   if (g_lots_300 != 0.0) {
      price_0 = 0;
      price_8 = 0;
      ticket_16 = OrderSend(Symbol(), OP_SELL, g_lots_300, Bid, g_slippage_380, 0, 0, CommentTxt, MagicNo, 0, g_color_420);
      if (ticket_16 > -1) {
         OrderSelect(ticket_16, SELECT_BY_TICKET);
         if (gd_96 > 0.0) price_0 = NormalizeDouble(OrderOpenPrice() + gd_96 * gd_372, Digits);
         if (gd_112 > 0.0) price_8 = NormalizeDouble(OrderOpenPrice() - gd_112 * gd_372, Digits);
         OrderModify(OrderTicket(), OrderOpenPrice(), price_0, price_8, 0, Green);
      }
      if (ticket_16 > -1 && gi_400) PlaySound(gs_404);
   }
}

void f0_4() {
   if (MoneyManagement) LotSize = (AccountEquity() * (PercentRisk) / 100) / 1000;
   gd_348  = MarketInfo(Symbol(), MODE_MINLOT);
   g_maxlot_356  = MarketInfo(Symbol(), MODE_MAXLOT);
   g_lotstep_364 = MarketInfo(Symbol(), MODE_LOTSTEP);

   if(LotSize <= gd_348 ) LotSize = gd_348;                // checking for minimum lot
   else  if(LotSize >= g_maxlot_356 ) LotSize = g_maxlot_356;          // checking for maximum lot
   else LotSize = MathFloor(LotSize / g_lotstep_364) * g_lotstep_364;  // rounding to the nearest
   LotSize = (NormalizeDouble(LotSize,2));
   gd_332 = f0_7(Symbol());
   if (FXOpenECN && StringFind(AccountServer(), "FXOpen-ECN", 0) >= 0) gd_348 = 0.1;
   gd_316 = LotSize;
   gd_324 = LotSize;
   g_text_444 = "Margin level is healthy, SW is running in full mode";
   g_color_452 = LightGreen;
   for (int pos_8 = OrdersHistoryTotal() - 1; pos_8 >= 0; pos_8--) {
      OrderSelect(pos_8, SELECT_BY_POS, MODE_HISTORY);
      if (OrderMagicNumber() == MagicNo) {
         g_order_profit_340 = OrderProfit();
         pos_8 = 0;
      }
   }
   if (g_order_profit_340 == 0.0) g_lots_300 = gd_324;
   if (g_order_profit_340 > 0.0) g_lots_300 = gd_316;
   if (g_order_profit_340 < 0.0) g_lots_300 = gd_324;
   if (DayOfWeek() == 5 && Hour() > FridayCutHour) {
      g_text_444 = "It\'s Friday after " + DoubleToStr(FridayCutHour, 0) + ":00, ";
      g_color_452 = Silver;
      if (!TradeLateFri) {
         g_lots_300 = 0;
         g_text_444 = g_text_444 + "SW will not open new orders";
      } else {
         g_lots_300 = gd_324;
         g_text_444 = g_text_444 + "SW will open new TestLot orders only";
      }
   }
   if (Month() == 12 && Day() > gi_208) {
      g_text_444 = "It\'s December after " + DoubleToStr(gi_208, 0) + "th, ";
      g_color_452 = Silver;
      if (!TradeLateDec) {
         g_lots_300 = 0;
         g_text_444 = g_text_444 + "SW will not open new orders";
      } else {
         g_lots_300 = gd_324;
         g_text_444 = g_text_444 + "SW will open new TestLot orders only";
      }
   }
   if (gd_332 > MaxSpread) {
      g_text_444 = "Spread is too high, SW will not open new orders";
      g_color_452 = Silver;
      g_lots_300 = 0;
   }
   if (AccountFreeMargin() < 110.0) {
      g_text_444 = "Free Margin is dangerously low, SW will not open new orders";
      g_color_452 = HotPink;
      g_lots_300 = 0;
   }
}

double f0_5(double ad_0, double ad_8, double ad_16, int ai_24) {
   double ld_ret_28 = ad_0;
   if (ld_ret_28 < ad_8) ld_ret_28 = ad_8;
   else
      if (ld_ret_28 > ad_16) ld_ret_28 = ad_16;
   NormalizeDouble(ld_ret_28, ai_24);
   return (ld_ret_28);
}

double f0_6(string a_symbol_0) {
   int digits_16 = MarketInfo(a_symbol_0, MODE_DIGITS);
   double ld_ret_8 = 0.0001;
   if (digits_16 == 2 || digits_16 == 3) ld_ret_8 = 0.01;
   return (ld_ret_8);
}

double f0_7(string a_symbol_0) {
   double ticksize_24 = MarketInfo(a_symbol_0, MODE_TICKSIZE);
   double ld_16 = f0_6(a_symbol_0);
   double ld_ret_8 = MarketInfo(a_symbol_0, MODE_SPREAD) * (ticksize_24 / ld_16);
   return (ld_ret_8);
}

void f0_8(string a_name_0, int a_y_8, int a_x_12, string a_text_16, int a_fontsize_24, string a_fontname_28, color a_color_36) {
   ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0);
   ObjectSet(a_name_0, OBJPROP_CORNER, 0);
   ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_12);
   ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_8);
   ObjectSetText(a_name_0, a_text_16, a_fontsize_24, a_fontname_28, a_color_36);
}

 

 

这个EA我不是看重他的趋势系统,而是喜欢他的风险控制!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有