KimIV的有用功能 - 页 71 1...646566676869707172737475767778...128 新评论 khorosh 2009.01.23 21:34 #701 你需要对上层和下层的分形 分别进行编号。在函数参数中,指定UPPER或LOWER类型和分形数。顺便说一下,如果你在搜索之字形拐点时也对上下结点分别进行编号,使用起来会更方便。 kombat 2009.01.23 22:03 #702 KimIV писал(а)>> 是的,没有...因为我无法决定如何给这种分形编号。 如果像这样的东西不算是分形的形成呢。一个选择? khorosh 2009.01.23 23:46 #703 Kombat.我不同意这个选项。事实上,只要有两个分形出现在同一根柱子上,就是著名的数字 "透镜 "的标志,有时也称为 "钻石"。因此,这个数字可以通过这个符号在专家顾问中捞出来。 [删除] 2009.01.24 22:12 #704 向Docs和Igor提问 = 是否有可能在一个独立的时间窗口中建立 "利润 "或 "资金 "指标作为连续线(不同的Т/F)(意思是 - 控制投资组合的动态表现)?不幸的是,在伊戈尔的网站上有一个指标,但它是以表格和静态的形式......(或者也许有一个--给我一个链接) .... kombat 2009.01.24 22:42 #705 khorosh писал(а)>> Kombat.我不同意这个选项。事实上,只是当一个条形上有两个分形时,它是一个著名的数字 "透镜 "的标志,有时被称为 "钻石"。因此,这个数字可以通过这个符号在专家顾问中捞出来。 对于定义来说是的,但对于编号来说,这就是它的目的......。 polopolo 2009.01.27 14:51 #706 nuj >> : 向Docs和Igor提问 = 是否有可能在一个独立的时间窗口中建立一个 "利润 "或 "资金 "指标作为连续线(不同的Т/F)(意思是 - 控制投资组合的动态表现)?不幸的是,在伊戈尔的网站上有一个指标,但它是以表格和静态的形式......(或者也许有一个--给我一个链接) .... 通过论坛搜索 附加的文件: equity_v7.mq4 17 kb черт 2009.01.30 16:52 #707 并询问你是否有一个顾问,。 1.拿起所有开放的职位。 2.在无损失处设置止损。 3.拖网 4.关闭 三个层次的职位,例如:。 地段等同于1。 出场1 - 50%的手数被平仓,例如从开盘价起30点。 2路出局 - 30%的手数被关闭,例如开盘价的70点。 3条出路--20%的地段是封闭的,比如说在MA路口。 谢谢你。 [删除] 2009.01.31 16:56 #708 下午好,请您告诉我如何在这个简单的专家顾问中实现NumberOfBarOpenLastPos函数。 这样,每条街就会触发一次订单...... 我在代码中加入了这个功能,但没有任何效果...... //-------------------------------------------------------------------- // tradingexpert.mq4 // //-------------------------------------------------------------------- #property copyright"Copyright © Book, 2007" #属性链接 "http://AutoGraf.dp.ua" //--------------------------------------------------------------- 1 -- // M15的数值 外部双数 StopLoss =200; // 正在开仓的订单的SL。 外部双数TakeProfit =10; // 正在开仓的订单的TP。 Extern intern Period_MA_1=11; // Period MA 1 extern int Period_MA_2=31; // Period MA 2. 外部双倍Rastvor =28.0; // MAs之间的距离。 extern double Lots =0.1; // 固定的手数。 外部双倍Prots =0.07; // 自由资金的百分比 bool Work=true; // 专家顾问将工作。 string Symb; // 金融工具的名称 //--------------------------------------------------------------- 2 -- int start() { 䵮䵮 总数, // 窗口中的订单数 Tip=-1, // 选择的订单类型(B=0,S=1)。 Ticket; // 订单号 双 MA_1_t, // 值。MA_1当前值 MA_2_t, // MA_2_t值。MA_2_t current value, // MA_2_t value。 Lot, //Lots number in Order currently selected Lts, //开放订单中的手数 Min_Lot, // 最小地段数 步骤,//地段大小变化的步骤 免费, // 目前的免费资金 One_Lot, // 一批的价值 价格, // 所选订单的价格 SL, // 所选订单的SL价格 TP; // 所选订单的TP bool Ans =false, // 关闭后的服务器答案 Cls_B=false, // 关闭购买的标准 Cls_S=false, //关闭Sell的标准。 Opn_B=false, //开买的标准 Opn__S=false; // 开启Sell的标准。 //--------------------------------------------------------------- 3 -- //预处理 如果(Bars < Period_MA_2) // 没有足够的条数 { Alert("窗口中没有足够的条形,专家顾问不工作。")。 return; // 退出start() } if(Work==false) // 严重错误。 { Alert("Critical error. Expert Advisor is not working.")。 return; // 从start()退出。 } //--------------------------------------------------------------- 4 -- // 顺序计数 Symb=Symbol(); // 金融工具的名称。 总数=0; // 订单数量 for(int i=1; i<=OrdersTotal(); i++) // 订单循环 { 如果(OrderSelect(i-1,SELECT_BY_POS)==true) //如果 { // 订单分析。 如果(OrderSymbol()!=Symb)继续; // 不是我们的金融工具 如果(OrderType()>1) // 我们有一个待定订单 { Alert("检测到挂单,专家顾问不工作;) return; // Exit() } 总计++; // 市场订单计数器 if (Total>1) // 不超过一个订单 { 警报("几个市场订单,专家顾问不工作;) return; // Exit() } Ticket=OrderTicket(); // 选择的订单号。 Tip =OrderType(); // 所选订单的类型。 Price =OrderOpenPrice(); // 所选订单的价格。 SL =OrderStopLoss(); //选定订单的SL。 TP =OrderTakeProfit(); // 所选订单的TP。 Lot =OrderLots(); // Lot的数量 } } //--------------------------------------------------------------- 5 -- // 贸易标准 MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,0); // MA_1 MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,0); // MA_2 如果(MA_1_t > MA_2_t + Rastvor*Point) // 如果两者之间的差异 { // ...MA1和2是大的 Opn_B=true; // 打开购买标准 Cls_S=true; // 关闭标准出售 } 如果(MA_1_t < MA_2_t - Rastvor*Point) // 如果两者之间的差异 { // ...MA_1和2是大的 Opn_S=true; //打开卖出准则 Cls_B=true; //点击标准购买 } //--------------------------------------------------------------- 6 -- // 关闭订单 while(true) //Order closing loop. { if (Tip==0 && Cls_B==true) //打开买入订单。 { //有一个封闭的标准 Alert("Trying to close Buy" ,Ticket," ;) RefreshRates(); // 刷新数据 Ans=OrderClose(Ticket,Lot,Bid,2); // Closed Buy 如果(Ans==true) //成功了 :) { 警报("关闭买入订单",Ticket;) break; // 从闭环中退出 } 如果(Fun_Error(GetLastError())==1) //错误处理 continue; // retry return; // 从start()退出。 } if (Tip==1 && Cls_S==true) // 卖出订单打开。 { // 有一个接近的标准 Alert("Attempting to close Sell",Ticket," ;) RefreshRates(); // 刷新数据 Ans=OrderClose(Ticket,Lot,Ask,2); // 收盘卖出 如果(Ans==true) //成功了 :) { 提醒("卖出订单关闭",Ticket;) break; // 从闭环中退出 } 如果(Fun_Error(GetLastError())==1) //错误处理 continue; // retry return; // 从start()退出。 } break; // Exit while } //--------------------------------------------------------------- 7 -- // 顺序值 RefreshRates(); // 刷新数据 Min_Lot=MarketInfo(Symb,MODE_MINLOT); //最小的手数 Free =AccountFreeMargin(); // 释放资金 One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);//1手的价值 Step =MarketInfo(Symb,MODE_LOTSTEP); // 规模的步骤变化 如果 (Lots > 0) // 如果指定了地段 Lts =Lots; // 我们与他们一起工作 否则//自由资金的百分比 Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;//用于打开 if(Lts < Min_Lot) Lts=Min_Lot; // 不小于Min_Lot; // 不小于Min_Lot if(Lts*One_Lot > Free) // 比Free更贵的地段 { Alert(" Not enough money ", Lts," lots)。 return; // 退出start() } //--------------------------------------------------------------- 8 -- //公开订单 如果(NumberOfBarOpenLastPos()>0){ while(true) // 关闭订单循环。 { if (Total==0 && Opn_B==true) // 没有未结订单 { //开放购买标准。 RefreshRates(); // 更新数据 SL=Bid - New_Stop(StopLoss)*Point; //计算SL的开盘价 TP=Bid + New_Stop(TakeProfit)*Point; //计算TP的开盘。 Alert("Attempting to open Buy. Waiting for reply...")。 Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//打开买入。 if (Ticket > 0) // 它成功了 :) { 警报("买入订单打开",Ticket;) return; //退出订单 } 如果(Fun_Error(GetLastError())==1) //错误处理 continue; // retry return; // 从start()退出。 } if (Total==0 && Opn_S==true) // 没有未结订单 { //开放销售标准。 RefreshRates(); // 更新数据 SL=Ask + New_Stop(StopLoss)*Point; //计算SL的开盘。 TP=Ask - New_Stop(TakeProfit)*Point; // 计算TP的开盘。 Alert("Attempting to open Sell. Waiting for reply...")。 Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);//Open Sel. if (Ticket > 0) // 它成功了 :) { 警报("卖出订单打开",Ticket;) return; // 从start()中退出 } 如果(Fun_Error(GetLastError())==1) //错误处理 continue; // retry return; // 从start()退出。 } break; // Exit while } } //--------------------------------------------------------------- 9 -- return; //exit while; //start() } //-------------------------------------------------------------- 10 -- //+----------------------------------------------------------------------------+ //| Author : Kim Igor V. aka KimIV, http://www.kimiv.ru |。 //+----------------------------------------------------------------------------+ //| 版本号 : 19.02.2008|| //| 说明:返回最后开仓的条数或-1。 //+----------------------------------------------------------------------------+ //| 参数: | //| sy - 工具的名称(""或NULL - 当前符号)。 //| tf - 时间框架 ( 0 - 当前时间框架) || //| op - 操作 ( -1 - 任何位置) | | //| mn - MagicNumber ( -1 - any magic number) | | //+----------------------------------------------------------------------------+ intOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) { datetime t; int i, k=OrdersTotal(); 如果(sy=="" || sy=="0") sy=Symbol(); for (i=0; i<k; i++) { 如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ 如果(OrderSymbol()==sy){ 如果(OrderType()==OP_BUY || OrderType()==OP_SELL) { 如果(op<0 || OrderType()==op){ 如果(mn<0 || OrderMagicNumber()==mn) { 如果(t<OrderOpenTime())t=OrderOpenTime()。 } } } } } } 返回(iBarShift(sy, tf, t, True)) } int Fun_Error(int Error) // 错误处理函数 { switch(Error) { // 可以避免的错误。 case 4: Alert("Trade server is busy. Try again..."); Sleep(3000); // 简单的解决方案。 return(1); // 退出函数。 case 135:Alert("Price changed. Try again...")。 RefreshRates(); // 刷新数据。 return(1); // 从函数中退出。 case 136:Alert("No price. Waiting for a new tick...")。 while(RefreshRates()==false) // 读取一个新的刻度线 Sleep(1); // 循环中的延迟。 return(1); // 从函数中退出。 case 137:Alert("Broker is busy. Try again..."); Sleep(3000); // 简单的解决方案。 return(1); // 从函数中退出。 case 146:Alert("The trading subsystem is busy. Try again..."); Sleep(500); // 简单决定 return(1); // 从函数中退出。 // 严重错误 case 2: Alert("General error;) return(0); // 从函数中退出。 case 5: Alert("旧版本的终端。")。 Work=false; // 不再工作 return(0); // 从函数中退出。 case 64: Alert("Account blocked."); Work=false; // 不再工作 return(0); // 从函数中退出。 case 133:Alert("禁止交易。")。 return(0); // 从函数中退出。 case 134:Alert("没有足够的钱来执行交易")。 return(0); // 从函数中退出。 默认:Alert("An error has occurred",Error); // Other options return(0); // 从函数中退出。 } } //-------------------------------------------------------------- 11 -- int New_Stop(int Parametr) // 检查停止刺。 { int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);//最小距离。 if (Parametr<Min_Dist) // 如果小于允许的范围。 { Parametr=Min_Dist; // 设置公差。 Alert("停止距离增加;) } return(Parametr); // 返回值。 } //-------------------------------------------------------------- 12 -- 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. Useful features from KimIV Michael 2009.02.01 12:47 #709 kurilko >> : // 开启订单 如果(NumberOfBarOpenLastPos()>0) 该函数只有在开仓的情况下才会返回大于0,如果不是-1则跟随... 如果(NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-) { } [删除] 2009.02.01 14:05 #710 将条件改为如果(NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1) 还是不行,也许需要在代码的其他地方写上? 1...646566676869707172737475767778...128 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,没有...因为我无法决定如何给这种分形编号。
如果像这样的东西不算是分形的形成呢。一个选择?
Kombat.我不同意这个选项。事实上,只是当一个条形上有两个分形时,它是一个著名的数字 "透镜 "的标志,有时被称为 "钻石"。因此,这个数字可以通过这个符号在专家顾问中捞出来。
对于定义来说是的,但对于编号来说,这就是它的目的......。
向Docs和Igor提问 = 是否有可能在一个独立的时间窗口中建立一个 "利润 "或 "资金 "指标作为连续线(不同的Т/F)(意思是 - 控制投资组合的动态表现)?不幸的是,在伊戈尔的网站上有一个指标,但它是以表格和静态的形式......(或者也许有一个--给我一个链接) ....
通过论坛搜索
并询问你是否有一个顾问,。
1.拿起所有开放的职位。
2.在无损失处设置止损。
3.拖网
4.关闭 三个层次的职位,例如:。
地段等同于1。
出场1 - 50%的手数被平仓,例如从开盘价起30点。
2路出局 - 30%的手数被关闭,例如开盘价的70点。
3条出路--20%的地段是封闭的,比如说在MA路口。
谢谢你。
下午好,请您告诉我如何在这个简单的专家顾问中实现NumberOfBarOpenLastPos函数。
这样,每条街就会触发一次订单...... 我在代码中加入了这个功能,但没有任何效果......
//--------------------------------------------------------------------
// tradingexpert.mq4
//
//--------------------------------------------------------------------
#property copyright"Copyright © Book, 2007"
#属性链接 "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 1 --
// M15的数值
外部双数 StopLoss =200; // 正在开仓的订单的SL。
外部双数TakeProfit =10; // 正在开仓的订单的TP。
Extern intern Period_MA_1=11; // Period MA 1
extern int Period_MA_2=31; // Period MA 2.
外部双倍Rastvor =28.0; // MAs之间的距离。
extern double Lots =0.1; // 固定的手数。
外部双倍Prots =0.07; // 自由资金的百分比
bool Work=true; // 专家顾问将工作。
string Symb; // 金融工具的名称
//--------------------------------------------------------------- 2 --
int start()
{
䵮䵮
总数, // 窗口中的订单数
Tip=-1, // 选择的订单类型(B=0,S=1)。
Ticket; // 订单号
双
MA_1_t, // 值。MA_1当前值
MA_2_t, // MA_2_t值。MA_2_t current value, // MA_2_t value。
Lot, //Lots number in Order currently selected
Lts, //开放订单中的手数
Min_Lot, // 最小地段数
步骤,//地段大小变化的步骤
免费, // 目前的免费资金
One_Lot, // 一批的价值
价格, // 所选订单的价格
SL, // 所选订单的SL价格
TP; // 所选订单的TP
bool
Ans =false, // 关闭后的服务器答案
Cls_B=false, // 关闭购买的标准
Cls_S=false, //关闭Sell的标准。
Opn_B=false, //开买的标准
Opn__S=false; // 开启Sell的标准。
//--------------------------------------------------------------- 3 --
//预处理
如果(Bars < Period_MA_2) // 没有足够的条数
{
Alert("窗口中没有足够的条形,专家顾问不工作。")。
return; // 退出start()
}
if(Work==false) // 严重错误。
{
Alert("Critical error. Expert Advisor is not working.")。
return; // 从start()退出。
}
//--------------------------------------------------------------- 4 --
// 顺序计数
Symb=Symbol(); // 金融工具的名称。
总数=0; // 订单数量
for(int i=1; i<=OrdersTotal(); i++) // 订单循环
{
如果(OrderSelect(i-1,SELECT_BY_POS)==true) //如果
{ // 订单分析。
如果(OrderSymbol()!=Symb)继续; // 不是我们的金融工具
如果(OrderType()>1) // 我们有一个待定订单
{
Alert("检测到挂单,专家顾问不工作;)
return; // Exit()
}
总计++; // 市场订单计数器
if (Total>1) // 不超过一个订单
{
警报("几个市场订单,专家顾问不工作;)
return; // Exit()
}
Ticket=OrderTicket(); // 选择的订单号。
Tip =OrderType(); // 所选订单的类型。
Price =OrderOpenPrice(); // 所选订单的价格。
SL =OrderStopLoss(); //选定订单的SL。
TP =OrderTakeProfit(); // 所选订单的TP。
Lot =OrderLots(); // Lot的数量
}
}
//--------------------------------------------------------------- 5 --
// 贸易标准
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,0); // MA_1
MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,0); // MA_2
如果(MA_1_t > MA_2_t + Rastvor*Point) // 如果两者之间的差异
{ // ...MA1和2是大的
Opn_B=true; // 打开购买标准
Cls_S=true; // 关闭标准出售
}
如果(MA_1_t < MA_2_t - Rastvor*Point) // 如果两者之间的差异
{ // ...MA_1和2是大的
Opn_S=true; //打开卖出准则
Cls_B=true; //点击标准购买
}
//--------------------------------------------------------------- 6 --
// 关闭订单
while(true) //Order closing loop.
{
if (Tip==0 && Cls_B==true) //打开买入订单。
{ //有一个封闭的标准
Alert("Trying to close Buy" ,Ticket," ;)
RefreshRates(); // 刷新数据
Ans=OrderClose(Ticket,Lot,Bid,2); // Closed Buy
如果(Ans==true) //成功了 :)
{
警报("关闭买入订单",Ticket;)
break; // 从闭环中退出
}
如果(Fun_Error(GetLastError())==1) //错误处理
continue; // retry
return; // 从start()退出。
}
if (Tip==1 && Cls_S==true) // 卖出订单打开。
{ // 有一个接近的标准
Alert("Attempting to close Sell",Ticket," ;)
RefreshRates(); // 刷新数据
Ans=OrderClose(Ticket,Lot,Ask,2); // 收盘卖出
如果(Ans==true) //成功了 :)
{
提醒("卖出订单关闭",Ticket;)
break; // 从闭环中退出
}
如果(Fun_Error(GetLastError())==1) //错误处理
continue; // retry
return; // 从start()退出。
}
break; // Exit while
}
//--------------------------------------------------------------- 7 --
// 顺序值
RefreshRates(); // 刷新数据
Min_Lot=MarketInfo(Symb,MODE_MINLOT); //最小的手数
Free =AccountFreeMargin(); // 释放资金
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);//1手的价值
Step =MarketInfo(Symb,MODE_LOTSTEP); // 规模的步骤变化
如果 (Lots > 0) // 如果指定了地段
Lts =Lots; // 我们与他们一起工作
否则//自由资金的百分比
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;//用于打开
if(Lts < Min_Lot) Lts=Min_Lot; // 不小于Min_Lot; // 不小于Min_Lot
if(Lts*One_Lot > Free) // 比Free更贵的地段
{
Alert(" Not enough money ", Lts," lots)。
return; // 退出start()
}
//--------------------------------------------------------------- 8 --
//公开订单
如果(NumberOfBarOpenLastPos()>0){
while(true) // 关闭订单循环。
{
if (Total==0 && Opn_B==true) // 没有未结订单
{ //开放购买标准。
RefreshRates(); // 更新数据
SL=Bid - New_Stop(StopLoss)*Point; //计算SL的开盘价
TP=Bid + New_Stop(TakeProfit)*Point; //计算TP的开盘。
Alert("Attempting to open Buy. Waiting for reply...")。
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//打开买入。
if (Ticket > 0) // 它成功了 :)
{
警报("买入订单打开",Ticket;)
return; //退出订单
}
如果(Fun_Error(GetLastError())==1) //错误处理
continue; // retry
return; // 从start()退出。
}
if (Total==0 && Opn_S==true) // 没有未结订单
{ //开放销售标准。
RefreshRates(); // 更新数据
SL=Ask + New_Stop(StopLoss)*Point; //计算SL的开盘。
TP=Ask - New_Stop(TakeProfit)*Point; // 计算TP的开盘。
Alert("Attempting to open Sell. Waiting for reply...")。
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);//Open Sel.
if (Ticket > 0) // 它成功了 :)
{
警报("卖出订单打开",Ticket;)
return; // 从start()中退出
}
如果(Fun_Error(GetLastError())==1) //错误处理
continue; // retry
return; // 从start()退出。
}
break; // Exit while
}
}
//--------------------------------------------------------------- 9 --
return; //exit while; //start()
}
//-------------------------------------------------------------- 10 --
//+----------------------------------------------------------------------------+
//| Author : Kim Igor V. aka KimIV, http://www.kimiv.ru |。
//+----------------------------------------------------------------------------+
//| 版本号 : 19.02.2008||
//| 说明:返回最后开仓的条数或-1。
//+----------------------------------------------------------------------------+
//| 参数: |
//| sy - 工具的名称(""或NULL - 当前符号)。
//| tf - 时间框架 ( 0 - 当前时间框架) ||
//| op - 操作 ( -1 - 任何位置) | |
//| mn - MagicNumber ( -1 - any magic number) | |
//+----------------------------------------------------------------------------+
intOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
datetime t;
int i, k=OrdersTotal();
如果(sy=="" || sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
如果(OrderSymbol()==sy){
如果(OrderType()==OP_BUY || OrderType()==OP_SELL) {
如果(op<0 || OrderType()==op){
如果(mn<0 || OrderMagicNumber()==mn) {
如果(t<OrderOpenTime())t=OrderOpenTime()。
}
}
}
}
}
}
返回(iBarShift(sy, tf, t, True))
}
int Fun_Error(int Error) // 错误处理函数
{
switch(Error)
{ // 可以避免的错误。
case 4: Alert("Trade server is busy. Try again...");
Sleep(3000); // 简单的解决方案。
return(1); // 退出函数。
case 135:Alert("Price changed. Try again...")。
RefreshRates(); // 刷新数据。
return(1); // 从函数中退出。
case 136:Alert("No price. Waiting for a new tick...")。
while(RefreshRates()==false) // 读取一个新的刻度线
Sleep(1); // 循环中的延迟。
return(1); // 从函数中退出。
case 137:Alert("Broker is busy. Try again...");
Sleep(3000); // 简单的解决方案。
return(1); // 从函数中退出。
case 146:Alert("The trading subsystem is busy. Try again...");
Sleep(500); // 简单决定
return(1); // 从函数中退出。
// 严重错误
case 2: Alert("General error;)
return(0); // 从函数中退出。
case 5: Alert("旧版本的终端。")。
Work=false; // 不再工作
return(0); // 从函数中退出。
case 64: Alert("Account blocked.");
Work=false; // 不再工作
return(0); // 从函数中退出。
case 133:Alert("禁止交易。")。
return(0); // 从函数中退出。
case 134:Alert("没有足够的钱来执行交易")。
return(0); // 从函数中退出。
默认:Alert("An error has occurred",Error); // Other options
return(0); // 从函数中退出。
}
}
//-------------------------------------------------------------- 11 --
int New_Stop(int Parametr) // 检查停止刺。
{
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);//最小距离。
if (Parametr<Min_Dist) // 如果小于允许的范围。
{
Parametr=Min_Dist; // 设置公差。
Alert("停止距离增加;)
}
return(Parametr); // 返回值。
}
//-------------------------------------------------------------- 12 --
// 开启订单
如果(NumberOfBarOpenLastPos()>0)
该函数只有在开仓的情况下才会返回大于0,如果不是-1则跟随...
如果(NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-)
{
}
将条件改为如果(NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)
还是不行,也许需要在代码的其他地方写上?