您需要 登录 才可以下载或查看,没有帐号?注册
#property copyright 5美金炒外汇黄金,白送的http://goo.gl/sGDvh
#property link http://www.forex4you.cn/?affid=491fbb3
#import stdlib.ex4
string ErrorDescription(int a0);
#import
extern string HeadLine = 外汇投资开户qq63511088
extern string BuyBlock = 无交易员美分账户开户http://www.forex4you.cn/?affid=491fbb3群84446947
extern bool Trade_on_all_currencies = TRUE;
extern int Trade_on_Timeframe = 60;
extern double LotSize = 0.1;
extern int Max_Spread_pips = 10;
extern int Max_StopLevel_pips = 30;
extern bool UseTrailingStop = TRUE;
extern int Trailing_Step = 15;
extern int Manual_Stop_Loss = 50;
extern int Take_Profit = 0;
extern int Slip_page = 2;
extern int MagicNumber = 19881;
extern int ADX.Period = 14;
extern int BB.Period = 20;
extern int BB.Deviation = 2;
extern int MA.Period = 20;
extern int MA.Method = 0;
extern int MA.Price = 0;
extern double SAR.Step = 0.02;
extern double SAR.Max = 0.2;
extern int SignalBar = 1;
string gsa_168[];
int gia_172[];
int g_slippage_176 = 0;
int gi_180 = 0;
int gi_184 = 0;
int gi_unused_188 = -1;
string gs_200;
int g_datetime_208 = 0;
int init() {
int li_0;
int li_4;
if (Trade_on_all_currencies) {
li_0 = f0_2();
li_4 = f0_6();
gs_200 = gs_200 + H1 Multitrader EA Loaded on + li_4 + of + li_0 + currency pairs.n
} else {
ArrayResize(gsa_168, 1);
gsa_168[0] = Symbol();
gs_200 = gs_200 + H1 Multitrader EA Loaded only on + gsa_168[0]
+ n
}
gs_200 = gs_200 + H1 Multitrader EA Loaded on + Trade_on_Timeframe + m. time frame.n
if (IsTradeAllowed()) gs_200 = gs_200 + @ Live Trading Enabled @
if (!IsTradeAllowed()) gs_200 = gs_200 + @ alerts Mode only @
ArrayResize(gia_172, ArraySize(gsa_168));
return (0);
}
int deinit() {
Comment(
gs_200 =
return (0);
}
int start() {
ads();
string ls_unused_0;
double icustom_12;
double icustom_20;
if (f0_0(10)) {
for (int index_8 = 0; index_8 ArraySize(gsa_168); index_8++) {
if (MarketInfo(gsa_168[index_8], MODE_DIGITS) == 5.0 || MarketInfo(gsa_168[index_8], MODE_DIGITS) == 3.0) {
g_slippage_176 = 10 * Slip_page;
gi_180 = 10 * Manual_Stop_Loss;
gi_184 = 10 * Take_Profit;
} else {
g_slippage_176 = Slip_page;
gi_180 = Manual_Stop_Loss;
gi_184 = Take_Profit;
}
Comment(gs_200
+ n Scanning + gsa_168[index_8] + , period: + Trade_on_Timeframe + min.
icustom_12 = iCustom(gsa_168[index_8], Trade_on_Timeframe, Momentum Indicator , ADX.Period, BB.Period, BB.Deviation, MA.Period, MA.Method, MA.Price, SAR.Step, SAR.Max,
0, SignalBar);
icustom_20 = iCustom(gsa_168[index_8], Trade_on_Timeframe, Momentum Indicator , ADX.Period, BB.Period, BB.Deviation, MA.Period, MA.Method, MA.Price, SAR.Step, SAR.Max,
1, SignalBar);
if (icustom_12 0.0 icustom_12 != EMPTY_VALUE) {
f0_7(OP_SELL, gsa_168[index_8]);
if (!f0_3(-1, gsa_168[index_8])) f0_4( 外汇投资qq63511088 , gsa_168[index_8]);
if (gia_172[index_8] != 0) {
alert(gsa_168[index_8] + BUY Signal @ + DoubleToStr(MarketInfo(gsa_168[index_8], MODE_ASK), MarketInfo(gsa_168[index_8], MODE_DIGITS)));
gia_172[index_8] = 0;
}
}
if (icustom_20 0.0 icustom_20 != EMPTY_VALUE) {
f0_7(OP_BUY, gsa_168[index_8]);
if (!f0_3(-1, gsa_168[index_8])) f0_5( 外汇投资qq63511088 , gsa_168[index_8]);
if (gia_172[index_8] != 1) {
alert(gsa_168[index_8] + SELL Signal @ + DoubleToStr(MarketInfo(gsa_168[index_8], MODE_BID), MarketInfo(gsa_168[index_8], MODE_DIGITS)));
gia_172[index_8] = 1;
}
}
}
}
f0_1();
Comment(gs_200);
return (0);
}
int f0_6() {
string lsa_0[];
int li_4;
int li_8;
for (int index_12 = 0; index_12 ArraySize(gsa_168); index_12++) {
if (MarketInfo(gsa_168[index_12], MODE_DIGITS) == 3.0 || MarketInfo(gsa_168[index_12], MODE_DIGITS) == 5.0) {
li_4 = 10 * Max_Spread_pips;
li_8 = 10 * Max_StopLevel_pips;
} else {
li_4 = Max_Spread_pips;
li_8 = Max_StopLevel_pips;
}
if (MarketInfo(gsa_168[index_12], MODE_SPREAD) = li_4 MarketInfo(gsa_168[index_12], MODE_STOPLEVEL) = li_8 MarketInfo(gsa_168[index_12], MODE_PROFITCALCMODE) == 0.0
StringFind(gsa_168[index_12], XAU ) 0 StringFind(gsa_168[index_12], XAG ) 0) {
ArrayResize(lsa_0, ArraySize(lsa_0) + 1);
lsa_0[ArraySize(lsa_0) - 1] = gsa_168[index_12];
}
}
ArrayResize(gsa_168, ArraySize(lsa_0));
for (int index_16 = 0; index_16 ArraySize(lsa_0); index_16++) gsa_168[index_16] = lsa_0[index_16];
ArrayResize(lsa_0, 0);
return (ArraySize(gsa_168));
}
void f0_1() {
int li_0;
if (Trailing_Step = 0 || UseTrailingStop == FALSE) return;
for (int pos_4 = OrdersTotal() - 1; pos_4 pos_4--) {
if (OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES) OrderMagicNumber() == MagicNumber) {
if (MarketInfo(OrderSymbol(), MODE_DIGITS) == 5.0 || MarketInfo(OrderSymbol(), MODE_DIGITS) == 3.0) li_0 = 10 * Trailing_Step;
else li_0 = Trailing_Step;
if (MarketInfo(OrderSymbol(), MODE_STOPLEVEL) li_0) li_0 = MarketInfo(OrderSymbol(), MODE_STOPLEVEL);
if (OrderType() == OP_BUY MarketInfo(OrderSymbol(), MODE_BID) OrderOpenPrice() + li_0 * MarketInfo(OrderSymbol(), MODE_POINT)) {
if (OrderStopLoss() OrderOpenPrice()) {
if (!(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Yellow))) break;
Print(OrderSymbol(), Error modifying buy trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
return;
}
if (MarketInfo(OrderSymbol(), MODE_BID) - OrderStopLoss() 2.0 * (MarketInfo(OrderSymbol(), MODE_POINT) * li_0))
if (!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss() + MarketInfo(OrderSymbol(), MODE_POINT) * li_0, OrderTakeProfit(), 0, Yellow)) Print(OrderSymbol(), Error modifying buy trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
}
if (OrderType() == OP_SELL MarketInfo(OrderSymbol(), MODE_ASK) OrderOpenPrice() - li_0 * MarketInfo(OrderSymbol(), MODE_POINT)) {
if (OrderStopLoss() OrderOpenPrice() || OrderStopLoss() MarketInfo(OrderSymbol(), MODE_POINT)) {
if (!(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Yellow))) break;
Print(OrderSymbol(), Error modifying sell trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
return;
}
if (OrderStopLoss() - MarketInfo(OrderSymbol(), MODE_ASK) 2.0 * (MarketInfo(OrderSymbol(), MODE_POINT) * li_0))
if (!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss() - MarketInfo(OrderSymbol(), MODE_POINT) * li_0, OrderTakeProfit(), 0, Yellow)) Print(OrderSymbol(), Error modifying sell trade , OrderTicket(), . Error: , ErrorDescription(GetLastError()));
}
}
}
}
int f0_4(string a_comment_0, string a_symbol_8) {
double price_24;
double price_32;
int ticket_16 = -1;
int count_20 = 0;
if (IsTradeContextBusy()) {
Print( Warning: Trade Context Busy!nOrders can not be executed
return (0);
}
while (ticket_16 = 0 count_20 5) {
RefreshRates();
price_32 = MarketInfo(a_symbol_8, MODE_ASK) + gi_184 * MarketInfo(a_symbol_8, MODE_POINT);
if (price_32 MarketInfo(a_symbol_8, MODE_BID) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_32 = MarketInfo(a_symbol_8, MODE_BID) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
if (gi_184 MarketInfo(a_symbol_8, MODE_POINT)) price_32 = 0;
price_24 = iLow(a_symbol_8, Trade_on_Timeframe, SignalBar);
if (MarketInfo(a_symbol_8, MODE_ASK) - price_24 gi_180 * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_ASK) - gi_180 * MarketInfo(a_symbol_8, MODE_POINT);
if (price_24 MarketInfo(a_symbol_8, MODE_BID) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_BID) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
if (!IsTradeAllowed()) return (0);
ticket_16 = OrderSend(a_symbol_8, OP_BUY, LotSize, MarketInfo(a_symbol_8, MODE_ASK), g_slippage_176, 0, 0, a_comment_0, MagicNumber, 0, Blue);
if (GetLastError() == 132) {
Print(a_symbol_8, Unable to open buy trade! Market is CLOSED!
return (0);
}
if (ticket_16 = 0) Sleep(500);
count_20++;
}
if (ticket_16 0 OrderSelect(ticket_16, SELECT_BY_TICKET)) {
if (!(price_24 0.0 || price_32 0.0)) return (1);
while (!OrderModify(OrderTicket(), OrderOpenPrice(), price_24, price_32, 0, CLR_NONE) count_20 10) {
Print(a_symbol_8, Unable to set SL/TP! Error: , ErrorDescription(GetLastError()));
Print( Ask: + MarketInfo(a_symbol_8, MODE_ASK), SL: , price_24, TP: , price_32);
count_20++;
Sleep(500);
}
return (1);
}
Print(a_symbol_8, Unable to open buy trade! Error: , ErrorDescription(GetLastError()));
return (0);
}
int f0_5(string a_comment_0, string a_symbol_8) {
double price_24;
double price_32;
int ticket_16 = -1;
int count_20 = 0;
if (IsTradeContextBusy()) {
Print( Warning: Trade Context Busy!nOrders can not be executed
return (0);
}
while (ticket_16 = 0 count_20 5) {
RefreshRates();
price_32 = MarketInfo(a_symbol_8, MODE_BID) - gi_184 * MarketInfo(a_symbol_8, MODE_POINT);
if (price_32 MarketInfo(a_symbol_8, MODE_ASK) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_32 = MarketInfo(a_symbol_8, MODE_ASK) - MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
if (gi_184 MarketInfo(a_symbol_8, MODE_POINT)) price_32 = 0;
price_24 = iHigh(a_symbol_8, Trade_on_Timeframe, SignalBar);
if (price_24 - MarketInfo(a_symbol_8, MODE_BID) gi_180 * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_BID) + gi_180 * MarketInfo(a_symbol_8, MODE_POINT);
if (price_24 0.0 price_24 MarketInfo(a_symbol_8, MODE_ASK) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT)) price_24 = MarketInfo(a_symbol_8, MODE_ASK) + MarketInfo(a_symbol_8, MODE_STOPLEVEL) * MarketInfo(a_symbol_8, MODE_POINT);
if (!IsTradeAllowed()) return (0);
ticket_16 = OrderSend(a_symbol_8, OP_SELL, LotSize, MarketInfo(a_symbol_8, MODE_BID), g_slippage_176, 0, 0, a_comment_0, MagicNumber, 0, Red);
if (GetLastError() == 132) {
Print(a_symbol_8, Unable to open sell trade! Market is CLOSED!
return (0);
}
if (ticket_16 = 0) Sleep(500);
count_20++;
}
if (ticket_16 0 OrderSelect(ticket_16, SELECT_BY_TICKET)) {
if (!(price_24 0.0 || price_32 0.0)) return (1);
while (!OrderModify(OrderTicket(), OrderOpenPrice(), price_24, price_32, 0, CLR_NONE) count_20 10) {
Print(a_symbol_8, Unable to set SL/TP! Error: , ErrorDescription(GetLastError()));
Print( Bid: , MarketInfo(a_symbol_8, MODE_BID), SL: , price_24, TP: , price_32);
count_20++;
Sleep(500);
}
return (1);
}
Print(a_symbol_8, Unable to open sell trade! Error: , ErrorDescription(GetLastError()));
return (0);
}
void f0_7(int a_cmd_0, string a_symbol_4) {
int li_12;
bool is_closed_16 = FALSE;
for (int pos_20 = OrdersTotal() - 1; pos_20 pos_20--) {
if (OrderSelect(pos_20, SELECT_BY_POS, MODE_TRADES) OrderSymbol() == a_symbol_4 OrderMagicNumber() == MagicNumber) {
if (OrderType() == a_cmd_0) {
while (!IsTradeAllowed()) Sleep(100);
while (IsTradeContextBusy()) Sleep(100);
while (!is_closed_16 li_12 5) {
RefreshRates();
is_closed_16 = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), g_slippage_176, White);
li_12++;
Sleep(500);
}
}
}
}
}
int f0_2() {
string name_8 = symbols.sel
int file_16 = FileOpenHistory(name_8, FILE_BIN|FILE_READ);
if (file_16 0) return (-1);
int li_ret_4 = (FileSize(file_16) - 4) / 128;
int li_0 = 116;
ArrayResize(gsa_168, li_ret_4);
FileSeek(file_16, 4, SEEK_SET);
for (int index_20 = 0; index_20 li_ret_4; index_20++) {
gsa_168[index_20] = FileReadString(file_16, 12);
FileSeek(file_16, li_0, SEEK_CUR);
}
FileClose(file_16);
return (li_ret_4);
}
int f0_0(int ai_0) {
int datetime_4 = TimeCurrent();
if (datetime_4 - g_datetime_208 ai_0) {
g_datetime_208 = datetime_4;
return (1);
}
return (0);
}
bool f0_3(int a_cmd_0, string a_symbol_4) {
for (int pos_12 = OrdersTotal() - 1; pos_12 pos_12--) {
if (OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES) OrderSymbol() == a_symbol_4 OrderMagicNumber() == MagicNumber)
if (OrderType() == a_cmd_0 || a_cmd_0 == -1) return (TRUE);
}
for (pos_12 = OrdersHistoryTotal() - 1; pos_12 pos_12--) {
if (OrderSelect(pos_12, SELECT_BY_POS, MODE_HISTORY) OrderSymbol() == a_symbol_4 OrderMagicNumber() == MagicNumber)
if (OrderType() == a_cmd_0 || a_cmd_0 == -1 iBarShift(a_symbol_4, Trade_on_Timeframe, OrderOpenTime(), TRUE) == 0) return (TRUE);
}
return (FALSE);
}
void SetLab(string name, int x, int y, int corner, string text, int fontsize, string fontname, color clr = -1) {
ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
ObjectSet(name, OBJPROP_XDISTANCE, x);
ObjectSet(name, OBJPROP_YDISTANCE, y);
ObjectSet(name, OBJPROP_CORNER, corner);
ObjectSetText(name, text, fontsize, fontname, clr);
}
void ads() {
SetLab( ads03 , 20, 15, 2, 外汇投资开户qq63511088 , 14, Arial , Aqua);
}
#define MAGICMA 20100604
//+------------------------------------------------------------------+
extern int 检查均线模式 = 4; //1~4 种下单方式 1 仅开仓, 2 有止损无止赢, 3 有止赢无止损, 4 有止赢也有止损
extern double 赢利目标 = 350; //
extern double 止损 = 130; //
extern double 最大风险 = 0.3; //资金控制,控制下单量
extern double 跟踪止损 = 100; //
extern int 最大开仓次数 = 3; //最多开仓次数限制
extern double 最大手数 = 0.1; //最多单仓持仓量限制
extern int 是否允许跟踪止赢 = 1; //非零就允许跟踪止赢
extern int 小均线周期=7;
extern int 中均线周期=23;
extern int 大均线周期=55;
int i,
p2,
xxx,
p1,
res;
double 手数;
datetime 最后时间; //时间控制, 仅当一个时间周期完成才检查条件
//+----------------------初始化-------------------------------------+
int init()
{
手数 = 1;
最后时间 = NULL;
return(0);
}
//+---------------------反初始化-------------------------------------+
int deinit() { return(0); }
//+---------------------主程序---------------------------------------+
int start()
{
开仓前检查子(); //开仓 平仓 条件检查 和操作
if (是否允许跟踪止赢 0) 跟踪止损设置子(); //跟踪止赢
return(0);
}
//+-------确定下单量 子函数()----------------------------------------+
double 手数最佳化子()
{
double lot =手数;
//MarketInfo(Symbol(),MODE_MINLOT); 相关信息
//MarketInfo(Symbol(),MODE_MAXLOT);
//MarketInfo(Symbol(),MODE_LOTSTEP);
lot=NormalizeDouble(最大风险 * AccountBalance()/AccountLeverage(),1); //开仓量计算
if(lot 0.1) lot=0.1;
if(lot 最大手数) lot=最大手数;
return(lot);
}
//----------平买 单子函数()------------------------------------------+
void 平买子()
{
if (OrdersTotal() 0 )
{
for(i=OrdersTotal()-1; i i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
Sleep(5000);
}
}
}
}
//------------平卖 子函数()-------------------------------------------+
void 平卖子()
{
if (OrdersTotal( ) 0 )
{
for(i=OrdersTotal()-1;i i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
Sleep(5000);
}
}
}
}
//-----------------买卖平条件 子函数()------------------------------------------------+
int 买卖平条件子() // 在这个函数时可以更改设置你的交易信号 ( 这里使用MACD 和MA 做例子)
{
double 小均线1, 小均线2, 中均线, 大均线;
小均线1= iMA(NULL,0,小均线周期, 0,MODE_SMA,PRICE_MEDIAN,0);
小均线2= iMA(NULL,0,小均线周期, 0,MODE_SMA,PRICE_MEDIAN,1);
中均线= iMA(NULL,0,中均线周期, 0,MODE_SMA,PRICE_MEDIAN,0);
大均线= iMA(NULL,0,大均线周期,0,MODE_SMA,PRICE_MEDIAN,0);
if((小均线1 小均线2 Open[0] 中均线 Close[0] =中均线) || (小均线1 小均线2 Close[1] 小均线2 Close[1] 中均线 Close[0] =小均线1)) // 买条件 大周期时间Ma在上升,小周期均线向上转折
return (1); // 返回信号值为1
if((小均线1 小均线2 Open[0] 中均线 Close[0] =中均线) || (小均线1 小均线2 Close[1] 小均线2 Close[1] 中均线 Close[0] =小均线1)) // 卖条件
return (-1); // 卖信号
return (0); // 若上述信号值没有,则返回不交易信号0
}
//+---------------开仓前内容的检查 子函数()-------------------------+
int 现在买卖 = 0;
void 开仓前检查子()
{
if (Time[0] == 最后时间 ) return; // 如果现在开盘时间与最后时间不同,则将现在的开盘时间赋给最后时间
最后时间 = Time[0];
现在买卖 = 买卖平条件子(); //将变量赋为 获取买卖条件子函数的信号值
if (现在买卖 == 1) //买 先结束已卖的
平卖子();
if (现在买卖 == -1) //卖 先结束已买的
平买子();
if (TimeDayOfWeek( TimeCurrent() )==1) //如果 服务器时间的星期数为周一
{
if (TimeHour( TimeCurrent() ) 3 ) return; //且服务器的时间小时数在3点前,则不进行交易
}
if (TimeDayOfWeek( TimeCurrent() )==5)
{
if (TimeHour( TimeCurrent() ) 19 ) return; //周五晚19点后不做(服务器时间)
}
if (OrdersTotal() = 最大开仓次数) return ; //如果已持有开仓次数达到最大,不做
if (现在买卖==0) return; //如果交易信号值为0,不交易
TradeOK(); //去下单交易
}
//+------------------去下单交易 子函数()------------------------------+
void TradeOK()
{
int 错误 ;
if (现在买卖 == 1) //买信号
{
switch (检查均线模式)
{
case 1: res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, 0, 0, ,MAGICMA,0,Blue);break;
case 2: res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, Ask-止损*Point, 0, ,MAGICMA,0,Blue);break;
case 3: res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, 0, Ask+赢利目标*Point, ,MAGICMA,0,Blue);break;
case 4: res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, Ask-止损*Point, Ask+赢利目标*Point, ,MAGICMA,0,Blue);break;
default : res=OrderSend(Symbol(),OP_BUY,手数最佳化子(),Ask,3, 0, 0, ,MAGICMA,0,Blue);break;
}
if (res =0)
{
错误=GetLastError();
if(错误==134) Print( 错误134 :没钱了!!
if(错误==135) RefreshRates(); // 价格已发生变化
}
Sleep(5000);
return ;
}
if (现在买卖 == -1) //卖信号出现
{
switch (检查均线模式)
{
case 1: res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, 0, 0, ,MAGICMA,0,Red); break;
case 2: res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, Bid+止损*Point, 0, ,MAGICMA,0,Red); break;
case 3: res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, 0, Bid-赢利目标*Point, ,MAGICMA,0,Red); break;
case 4: res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, Bid+止损*Point, Bid-赢利目标*Point, ,MAGICMA,0,Red); break;
default : res=OrderSend(Symbol(),OP_SELL,手数最佳化子(),Bid,3, 0, 0, ,MAGICMA,0,Red); break;
}
if (res =0)
{
错误=GetLastError();
if(错误==134) Print( 错误134 :没钱了!!!!
if(错误==135) RefreshRates(); // 价格已发生变化,再刷新一下数据
}
Sleep(5000); //等待5秒
return ;
}
}
//+---------------------//跟踪止损 子函数---------------------------------------------+
void 跟踪止损设置子()
{
bool 修改 = false;
for (int i=0; i OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if (OrderType()==OP_BUY)
{
if ((Bid -OrderOpenPrice()) (跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT))) //开仓价格 当前止损和当前价格比较判断是否要修改跟踪止赢设置
{
if (OrderStopLoss() Bid -跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT))
{
修改 = OrderModify(OrderTicket(),
OrderOpenPrice(),
Bid - 跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT),
OrderTakeProfit(),
0,
Green);
}
}
}
else if (OrderType()==OP_SELL)
{
if ((OrderOpenPrice() -Ask) (跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT))) //开仓价格 当前止损和当前价格比较判断是否要修改跟踪止赢设置
{
if ((OrderStopLoss()) (Ask + 跟踪止损*MarketInfo(OrderSymbol(), MODE_POINT)))
{
修改 = OrderModify(OrderTicket(),
OrderOpenPrice(),
Ask + 跟踪止损*MarketInfo(OrderSymbol(),MODE_POINT),
OrderTakeProfit(),
0,
Tan);
}
}
}
}
}
//+------------------------------------------------------------------+
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!