[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 412 1...405406407408409410411412413414415416417418419...631 新评论 Azamat Mullayanov 2012.10.04 10:04 #4111 大家好!在编写摇摆不定的专家时,正在寻找更准确的出场点,遇到了RSI(8)和ADX(25)之间的交叉点。目测在演示版上手动交易时一切正常。 问题:如何写出RSI(8)与ADX(25)DI+的交叉条件,例如,如果RSI(8)有一个从0到100的边界,而ADX(25)没有边界。也就是说,如果你把ADX扔在没有边界的图表上,然后把RSI扔在上面,那么RSI的刻度是最大和最小ADX。 是否可以定义RSI的值,当它被ADX缩放时。 [删除] 2012.10.04 10:06 #4112 PapaYozh: 没有????...如果你不介意的话,请给一个更详细的答案...如果你能至少给出一些简单的脚本作为例子就更好了,这将使你清楚地了解WindowHandle函数的作用。 ilunga 2012.10.04 10:13 #4113 drimara: 也就是说,如果你在没有指定边界的情况下在图表上抛出ADX,然后再抛出RSI,那么RSI就会以最大和最小的ADX为尺度。如果ADX被指定了0到100的边界,那么ADX和RSI之间就会有很少的明显交叉。是否可以定义RSI的值,当它被ADX缩放时。 如果你再把它向左和向右移动,交叉点就会开始偏移。 asasusa 2012.10.04 10:34 #4114 通过iCustom连接时,非标准指标中的参数数量是否有限制? 我有一个大约有8个参数的指标,我正确地输入了所有的参数,我检查了好几次,但在编译时仍然出现错误')'。- 错误的参数计数 D:\InstaTrader\experts\2.mq4 (11, 280) ilunga 2012.10.04 10:42 #4115 sss2019: 通过iCustom连接时,非标准指标中的参数数量是否有限制? 我有一个大约有8个参数的指标,我正确地输入了所有的参数,我检查了好几次,但在编译时仍然出现错误')'。- 错误的参数计数 D:\InstaTrader\experts\Expert_2.mq4 (11, 280) 在指标中显示代码+输入参数 PapaYozh 2012.10.04 11:02 #4116 7777877: ????......如果你不介意,请给一个更详细的答案......如果你能至少给出一些简单的脚本作为例子就更好了,这将有助于理解WindowHandle函数的作用。 以你目前的知识水平,你不太需要它。 如果你有成为一名程序员的愿望,那么就在谷歌 的帮助下咀嚼科学吧。查询"窗口描述符 site:mql4.com" [删除] 2012.10.04 11:27 #4117 我想请编程大师们告诉我我的问题,做这个顾问到底是否现实? ilunga 2012.10.04 11:34 #4118 stater: 我请编程大师告诉我我的问题,让这个顾问成为现实吗? 只要你愿意,一切皆有可能。 看到以下内容。 1) 栅栏开口控制 2)订单发送 试了又试,大师们会纠正的 neo777 2012.10.04 11:56 #4119 这里有一个EA,使订单在蜡烛的收盘时打开,而不仅仅是一个十字星。 谁能帮帮我,提前谢谢你。 //+------------------------------------------------------------------+ //| RSI_MA.mq4| //| Copyright © 2008, AEliseev k800elik@gmail.com ! //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright"Copyright © 2008, Andrey E. k800elik@gmail.com" #属性链接 "http://www.metaquotes.net" //---- 输入参数 外部 CCI_Per=14。 外部的MA_Per=20。 外部CCI_close_Per=14。 外部双倍TakeProfit=500。 外置双倍止损=150。 外来的双倍Lots=0.01。 外部的inttern Deposit=1000。 外部 bool MM=false。 外部inttern _MagicNumber=131313。 外部的int_Sleep=5000。 int LotA=1, Err=0; int j=0; var2,var1; int counter=0。 int票。 bool var3; bool order=false。 //+------------------------------------------------------------------+ //|专家初始化功能 | //+------------------------------------------------------------------+ int init() { Comment("CCI_MA v1.5 © 2008, Andrey E. k800elik@gmail.com")。 return(0); } //+------------------------------------------------------------------+ //|专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { /* int i, a1, a2; //---- 如果(OrdersTotal()>0) { for (i=0; i==OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS)。 如果(OrderMagicNumber()==131313) { a1=OrderClose(LotA*Lots,Ask,5,Red); /a2=OrderClose(var1,LotA*Lots,Ask,5,Red); } } }*/ return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { //---- 如果(isNewBar())EveryBar()。 EveryTick()。 //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 检查是否有新条 //+------------------------------------------------------------------+ bool isNewBar() { static datetime TimeBar=0; bool flag=false。 如果(TimeBar!=Time[0]) { TimeBar=Time[0]; flag=true。 } return(flag)。 } //+------------------------------------------------------------------+ //|当新条形图出现时执行动作。 //+------------------------------------------------------------------+ 空白的EveryBar() { // Print("A NEW BAR has arrived!" ) 双重MA[100], CCI[100], CCIclose[100], StandDevi[100]; int i,limit=ArraySize(CCI)。 双SL,TP。 睡眠(_Sleep)。 SL = NormalizeDouble(Ask - StopLoss*Point, Digits); TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。 for(i=0; i<limit; i++) { CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i)。 CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i)。 MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i)。 } // 检查是否有足够的钱来开立新的订单 如果(AccountFreeMargin()<(1000*Lots)) { Print("我们没有钱。Free Margin = ", AccountFreeMargin())。 return(0); } //================================================================================= int _GetLastError = 0, _OrdersTotal = OrdersTotal(); //----,浏览所有开放的职位 for ( int z = _OrdersTotal - 1; z >= 0; z -- ) { //----,如果在选择位置时发生错误,则继续选择下一个位置。 if ( !OrderSelect( z, SELECT_BY_POS )) { _GetLastError = GetLastError()。 Print("OrderSelect( ",z," , SELECT_BY_POS ) - Error #", _GetLastError); 继续。 } // 如果一个位置不是为当前符号打开的,它将被跳过 如果 ( OrderSymbol() != Symbol() ) 继续。 // 如果MagicNumber不等于_MagicNumber,跳过 //这个位置 如果 ( OrderMagicNumber() != _MagicNumber ) 继续。 //----,如果有一个BAY的位置是开放的。 如果 ( OrderType() == OP_BUY ) { //----,如果CCI向下越过190线 如果(((CCIclose[2]>190)&&(CCIclose[1]<=100)) ||(CCI[1]<MA[limit-MA_Per-1]) &&(CCI[2]>=MA[limit-MA_Per-2]) { //---- 关闭位置 if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 10, Green ) { _GetLastError = GetLastError()。 Print("OrderClose error # , _GetLastError )。 Err=1。 返回(-1)。 } } // 如果信号没有变化,退出--现在打开还为时过早。 //新的位置 否则 { 返回(0); } } //----,如果卖出头寸被打开。 如果 ( OrderType() == OP_SELL ) { //----,如果CCI向上越过线-190。 如果((CCIclose[2]<-190)&&(CCIclose[1]>=-300)) ||((CCI[1]>MA[limit-MA_Per-1]) &&(CCI[2]<=MA[limit-MA_Per-2]) { //---- 关闭位置 if(!OrderClose( OrderTicket(), OrderLots(), Ask, 10, Red ) { _GetLastError = GetLastError()。 Print("OrderClose error # " , _GetLastError ); Err=2。 返回(-1)。 } } // 如果信号没有变化,退出--现在打开还为时过早。 // 新的位置 否则返回(0)。 } } //+------------------------------------------------------------------+ //|如果执行到了这一步,则没有任何仓位。 //|检查是否可以开仓。 //+------------------------------------------------------------------+ 睡眠(_Sleep)。 //----,如果CCI从下往上越过了MACD。 SL = NormalizeDouble(Bid - StopLoss*Point, Digits); TP = NormalizeDouble(Bid + TakeProfit*Point, Digits)。 如果((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<MA[limit-MA_Per-2)) { //---- 打开BAY位置 如果(OrderSend( Symbol(, OP_BUY, LotA*Lots, Ask, 5, SL, TP, "CCI_test_buy", _MagicNumber, 0, Green ) < 0 ) { _GetLastError = GetLastError()。 Print( "OrderSend OP_BUY error #" , _GetLastError )。 Err=3。 返回(-1)。 } return(0); } //----,如果CCI从上到下越过MACD。 SL = NormalizeDouble(Ask + StopLoss*Point, Digits); TP = NormalizeDouble(Ask - TakeProfit*Point, Digits); 如果((CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>MA[limit-MA_Per-2] ) { //----,建立一个卖出头寸 如果(OrderSend( Symbol(, OP_SELL, LotA*Lots, Bid, 5, SL, TP, "CCI_test_close", _MagicNumber, 0, Red ) < 0 ) { _GetLastError = GetLastError()。 Print("OrderSend OP_SELL错误#", _GetLastError )。 Err=4。 返回(-1)。 } return(0); } } //+------------------------------------------------------------------+ //|在每次价格变化时进行计算。 //+------------------------------------------------------------------+ 空白的 EveryTick() { int i; 如果(MM==true) { 如果(AccountBalance()>(2*Deposit))LotA=2。 如果(AccountBalance()>(3*Deposit))LotA=3。 如果(AccountBalance()>(4*Deposit))LotA=4。 如果(AccountBalance()>(5*Deposit))LotA=5。 如果(AccountBalance()>(6*Deposit))LotA=6; if (AccountBalance()>(6*Deposit); LotA=6; 如果(AccountBalance()>(7*Deposit))LotA=7。 如果(AccountBalance()>(8*Deposit))LotA=8。 如果(AccountBalance()>(9*Deposit))LotA=9。 如果(AccountBalance()>(10*Deposit))LotA=10。 如果(AccountBalance()>(11*Deposit))LotA=11。 如果(AccountBalance()>(12*Deposit))LotA=12。 如果(AccountBalance()>(13*Deposit))LotA=13。 如果(AccountBalance()>(14*Deposit))LotA=14。 如果(AccountBalance()>(15*Deposit))LotA=15。 如果(AccountBalance()>(16*Deposit))LotA=16。 如果(AccountBalance()>(17*Deposit))LotA=17。 如果(AccountBalance()>(18*Deposit))LotA=18。 如果(AccountBalance()>(19*Deposit))LotA=19。 如果(AccountBalance()>(20*Deposit))LotA=20。 } int _GetLastError = 0, _OrdersTotal = OrdersTotal(); int z; 双SL,TP。 双重MA[100], CCI[100], CCIclose[100], StandDevi[100]; int limit=ArraySize(CCI)。 for(i=0; i<limit; i++) { CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i)。 CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i)。 MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i)。 } switch(Err) { 案例1: for ( z=_OrdersTotal - 1; z >= 0; z - ) { if ( !OrderSelect( z, SELECT_BY_POS )) { _GetLastError = GetLastError()。 Print("OrderSelect( ",z," , SELECT_BY_POS ) - Error #", _GetLastError); 继续。 } 如果 ( OrderSymbol() != Symbol() ) 继续。 如果 ( OrderMagicNumber() != _MagicNumber ) 继续。 如果 ( OrderType() == OP_BUY ) { 如果((CCIclose[2]>300) && (CCIclose[1]<=300) || (CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>=MA[limit-MA_Per-2]) { if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 5, Green ) { _GetLastError = GetLastError()。 Print("CASE OrderClose error # , _GetLastError )。 Err=1。 返回(-1)。 } 否则Err=0。 } } } 突破。 //============================================================================= 案例2: for ( z=_OrdersTotal - 1; z >= 0; z - ) { if ( !OrderSelect( z, SELECT_BY_POS )) { _GetLastError = GetLastError()。 Print("OrderSelect( ",z," , SELECT_BY_POS ) - Error #", _GetLastError); 继续。 } 如果 ( OrderSymbol() != Symbol() ) 继续。 如果 ( OrderMagicNumber() != _MagicNumber ) 继续。 如果 ( OrderType() == OP_SELL ) { 如果((CCIclose[2]<-300) && (CCIclose[1]>=-300) || ((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<=MA[limit-MA_Per-2]) { if(!OrderClose( OrderTicket(), OrderLots(), Ask, 5, Red ) { _GetLastError = GetLastError()。 Print("CASE OrderClose error # " , _GetLastError ); Err=2。 返回(-1)。 } 否则Err=0。 } } } 突破。 //============================================================================== 案例3: SL = NormalizeDouble(Bid - StopLoss*Point, Digits); TP = NormalizeDouble(Bid + TakeProfit*Point, Digits)。 如果(OrderSend( Symbol(, OP_BUY, LotA*Lots, Ask, 7, SL, TP, "AI_test_buy", _MagicNumber, 0, Green ) < 0 ) { _GetLastError = GetLastError()。 Print( "CASE OrderSend OP_BUY error # " , _GetLastError )。 Err=3。 返回(-1)。 } 否则Err=0。 突破。 //=================================================================================== 案例4: SL = NormalizeDouble(Ask + StopLoss*Point, Digits); TP = NormalizeDouble(Ask - TakeProfit*Point, Digits); 如果(OrderSend( Symbol(, OP_SELL, LotA*Lots, Bid, 7, SL, TP, "AI_test_close", _MagicNumber, 0, Red ) < 0 ) { _GetLastError = GetLastError()。 Print("CASE OrderSend OP_SELL错误#", _GetLastError )。 Err=4。 返回(-1)。 } 否则Err=0。 突破。 } } [ARCHIVE!] Any rookie question, 我将写一个免费的mql4顾问 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 ilunga 2012.10.04 12:02 #4120 Neo777:这里有一个EA,使订单在蜡烛的收盘时打开,而不仅仅是一个十字星。我想知道如何打开订单。 那你打算如何知道酒吧将以这个刻度收盘?也许是通过新酒吧 的开业? 编码是通过按钮SRC插入的 1...405406407408409410411412413414415416417418419...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好!在编写摇摆不定的专家时,正在寻找更准确的出场点,遇到了RSI(8)和ADX(25)之间的交叉点。目测在演示版上手动交易时一切正常。
问题:如何写出RSI(8)与ADX(25)DI+的交叉条件,例如,如果RSI(8)有一个从0到100的边界,而ADX(25)没有边界。也就是说,如果你把ADX扔在没有边界的图表上,然后把RSI扔在上面,那么RSI的刻度是最大和最小ADX。
是否可以定义RSI的值,当它被ADX缩放时。
没有
是否可以定义RSI的值,当它被ADX缩放时。
我有一个大约有8个参数的指标,我正确地输入了所有的参数,我检查了好几次,但在编译时仍然出现错误')'。- 错误的参数计数 D:\InstaTrader\experts\2.mq4 (11, 280)
通过iCustom连接时,非标准指标中的参数数量是否有限制?
我有一个大约有8个参数的指标,我正确地输入了所有的参数,我检查了好几次,但在编译时仍然出现错误')'。- 错误的参数计数 D:\InstaTrader\experts\Expert_2.mq4 (11, 280)
????......如果你不介意,请给一个更详细的答案......如果你能至少给出一些简单的脚本作为例子就更好了,这将有助于理解WindowHandle函数的作用。
以你目前的知识水平,你不太需要它。
如果你有成为一名程序员的愿望,那么就在谷歌 的帮助下咀嚼科学吧。查询"窗口描述符 site:mql4.com"
我请编程大师告诉我我的问题,让这个顾问成为现实吗?
只要你愿意,一切皆有可能。
看到以下内容。
1) 栅栏开口控制
2)订单发送
试了又试,大师们会纠正的
这里有一个EA,使订单在蜡烛的收盘时打开,而不仅仅是一个十字星。
谁能帮帮我,提前谢谢你。
//+------------------------------------------------------------------+
//| RSI_MA.mq4|
//| Copyright © 2008, AEliseev k800elik@gmail.com !
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"Copyright © 2008, Andrey E. k800elik@gmail.com"
#属性链接 "http://www.metaquotes.net"
//---- 输入参数
外部 CCI_Per=14。
外部的MA_Per=20。
外部CCI_close_Per=14。
外部双倍TakeProfit=500。
外置双倍止损=150。
外来的双倍Lots=0.01。
外部的inttern Deposit=1000。
外部 bool MM=false。
外部inttern _MagicNumber=131313。
外部的int_Sleep=5000。
int LotA=1, Err=0;
int j=0; var2,var1;
int counter=0。
int票。
bool var3;
bool order=false。
//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
int init()
{
Comment("CCI_MA v1.5 © 2008, Andrey E. k800elik@gmail.com")。
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
/* int i, a1, a2;
//----
如果(OrdersTotal()>0)
{
for (i=0; i==OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS)。
如果(OrderMagicNumber()==131313)
{
a1=OrderClose(LotA*Lots,Ask,5,Red);
/a2=OrderClose(var1,LotA*Lots,Ask,5,Red);
}
}
}*/
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
如果(isNewBar())EveryBar()。
EveryTick()。
//----
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 检查是否有新条
//+------------------------------------------------------------------+
bool isNewBar()
{ static datetime TimeBar=0;
bool flag=false。
如果(TimeBar!=Time[0])
{
TimeBar=Time[0];
flag=true。
}
return(flag)。
}
//+------------------------------------------------------------------+
//|当新条形图出现时执行动作。
//+------------------------------------------------------------------+
空白的EveryBar()
{
// Print("A NEW BAR has arrived!" )
双重MA[100], CCI[100], CCIclose[100], StandDevi[100];
int i,limit=ArraySize(CCI)。
双SL,TP。
睡眠(_Sleep)。
SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。
for(i=0; i<limit; i++)
{
CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i)。
CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i)。
MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i)。
}
// 检查是否有足够的钱来开立新的订单
如果(AccountFreeMargin()<(1000*Lots))
{
Print("我们没有钱。Free Margin = ", AccountFreeMargin())。
return(0);
}
//=================================================================================
int _GetLastError = 0, _OrdersTotal = OrdersTotal();
//----,浏览所有开放的职位
for ( int z = _OrdersTotal - 1; z >= 0; z -- )
{
//----,如果在选择位置时发生错误,则继续选择下一个位置。
if ( !OrderSelect( z, SELECT_BY_POS ))
{
_GetLastError = GetLastError()。
Print("OrderSelect( ",z," , SELECT_BY_POS ) - Error #", _GetLastError);
继续。
}
// 如果一个位置不是为当前符号打开的,它将被跳过
如果 ( OrderSymbol() != Symbol() ) 继续。
// 如果MagicNumber不等于_MagicNumber,跳过
//这个位置
如果 ( OrderMagicNumber() != _MagicNumber ) 继续。
//----,如果有一个BAY的位置是开放的。
如果 ( OrderType() == OP_BUY )
{
//----,如果CCI向下越过190线
如果(((CCIclose[2]>190)&&(CCIclose[1]<=100)) ||(CCI[1]<MA[limit-MA_Per-1]) &&(CCI[2]>=MA[limit-MA_Per-2])
{
//---- 关闭位置
if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 10, Green )
{
_GetLastError = GetLastError()。
Print("OrderClose error # , _GetLastError )。
Err=1。
返回(-1)。
}
}
// 如果信号没有变化,退出--现在打开还为时过早。
//新的位置
否则
{ 返回(0); }
}
//----,如果卖出头寸被打开。
如果 ( OrderType() == OP_SELL )
{
//----,如果CCI向上越过线-190。
如果((CCIclose[2]<-190)&&(CCIclose[1]>=-300)) ||((CCI[1]>MA[limit-MA_Per-1]) &&(CCI[2]<=MA[limit-MA_Per-2])
{
//---- 关闭位置
if(!OrderClose( OrderTicket(), OrderLots(), Ask, 10, Red )
{
_GetLastError = GetLastError()。
Print("OrderClose error # " , _GetLastError );
Err=2。
返回(-1)。
}
}
// 如果信号没有变化,退出--现在打开还为时过早。
// 新的位置
否则返回(0)。
}
}
//+------------------------------------------------------------------+
//|如果执行到了这一步,则没有任何仓位。
//|检查是否可以开仓。
//+------------------------------------------------------------------+
睡眠(_Sleep)。
//----,如果CCI从下往上越过了MACD。
SL = NormalizeDouble(Bid - StopLoss*Point, Digits);
TP = NormalizeDouble(Bid + TakeProfit*Point, Digits)。
如果((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<MA[limit-MA_Per-2))
{
//---- 打开BAY位置
如果(OrderSend( Symbol(, OP_BUY, LotA*Lots, Ask, 5, SL, TP, "CCI_test_buy", _MagicNumber, 0, Green ) < 0 )
{
_GetLastError = GetLastError()。
Print( "OrderSend OP_BUY error #" , _GetLastError )。
Err=3。
返回(-1)。
}
return(0);
}
//----,如果CCI从上到下越过MACD。
SL = NormalizeDouble(Ask + StopLoss*Point, Digits);
TP = NormalizeDouble(Ask - TakeProfit*Point, Digits);
如果((CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>MA[limit-MA_Per-2] )
{
//----,建立一个卖出头寸
如果(OrderSend( Symbol(, OP_SELL, LotA*Lots, Bid, 5, SL, TP, "CCI_test_close", _MagicNumber, 0, Red ) < 0 )
{
_GetLastError = GetLastError()。
Print("OrderSend OP_SELL错误#", _GetLastError )。
Err=4。
返回(-1)。
}
return(0);
}
}
//+------------------------------------------------------------------+
//|在每次价格变化时进行计算。
//+------------------------------------------------------------------+
空白的 EveryTick()
{
int i;
如果(MM==true)
{
如果(AccountBalance()>(2*Deposit))LotA=2。
如果(AccountBalance()>(3*Deposit))LotA=3。
如果(AccountBalance()>(4*Deposit))LotA=4。
如果(AccountBalance()>(5*Deposit))LotA=5。
如果(AccountBalance()>(6*Deposit))LotA=6; if (AccountBalance()>(6*Deposit); LotA=6;
如果(AccountBalance()>(7*Deposit))LotA=7。
如果(AccountBalance()>(8*Deposit))LotA=8。
如果(AccountBalance()>(9*Deposit))LotA=9。
如果(AccountBalance()>(10*Deposit))LotA=10。
如果(AccountBalance()>(11*Deposit))LotA=11。
如果(AccountBalance()>(12*Deposit))LotA=12。
如果(AccountBalance()>(13*Deposit))LotA=13。
如果(AccountBalance()>(14*Deposit))LotA=14。
如果(AccountBalance()>(15*Deposit))LotA=15。
如果(AccountBalance()>(16*Deposit))LotA=16。
如果(AccountBalance()>(17*Deposit))LotA=17。
如果(AccountBalance()>(18*Deposit))LotA=18。
如果(AccountBalance()>(19*Deposit))LotA=19。
如果(AccountBalance()>(20*Deposit))LotA=20。
}
int _GetLastError = 0, _OrdersTotal = OrdersTotal();
int z;
双SL,TP。
双重MA[100], CCI[100], CCIclose[100], StandDevi[100];
int limit=ArraySize(CCI)。
for(i=0; i<limit; i++)
{
CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i)。
CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i)。
MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i)。
}
switch(Err)
{
案例1:
for ( z=_OrdersTotal - 1; z >= 0; z - )
{
if ( !OrderSelect( z, SELECT_BY_POS ))
{
_GetLastError = GetLastError()。
Print("OrderSelect( ",z," , SELECT_BY_POS ) - Error #", _GetLastError);
继续。
}
如果 ( OrderSymbol() != Symbol() ) 继续。
如果 ( OrderMagicNumber() != _MagicNumber ) 继续。
如果 ( OrderType() == OP_BUY )
{
如果((CCIclose[2]>300) && (CCIclose[1]<=300) || (CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>=MA[limit-MA_Per-2])
{
if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 5, Green )
{
_GetLastError = GetLastError()。
Print("CASE OrderClose error # , _GetLastError )。
Err=1。
返回(-1)。
}
否则Err=0。
}
}
}
突破。
//=============================================================================
案例2:
for ( z=_OrdersTotal - 1; z >= 0; z - )
{
if ( !OrderSelect( z, SELECT_BY_POS ))
{
_GetLastError = GetLastError()。
Print("OrderSelect( ",z," , SELECT_BY_POS ) - Error #", _GetLastError);
继续。
}
如果 ( OrderSymbol() != Symbol() ) 继续。
如果 ( OrderMagicNumber() != _MagicNumber ) 继续。
如果 ( OrderType() == OP_SELL )
{
如果((CCIclose[2]<-300) && (CCIclose[1]>=-300) || ((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<=MA[limit-MA_Per-2])
{
if(!OrderClose( OrderTicket(), OrderLots(), Ask, 5, Red )
{
_GetLastError = GetLastError()。
Print("CASE OrderClose error # " , _GetLastError );
Err=2。
返回(-1)。
}
否则Err=0。
}
}
}
突破。
//==============================================================================
案例3:
SL = NormalizeDouble(Bid - StopLoss*Point, Digits);
TP = NormalizeDouble(Bid + TakeProfit*Point, Digits)。
如果(OrderSend( Symbol(, OP_BUY, LotA*Lots, Ask, 7, SL, TP, "AI_test_buy", _MagicNumber, 0, Green ) < 0 )
{
_GetLastError = GetLastError()。
Print( "CASE OrderSend OP_BUY error # " , _GetLastError )。
Err=3。
返回(-1)。
}
否则Err=0。
突破。
//===================================================================================
案例4:
SL = NormalizeDouble(Ask + StopLoss*Point, Digits);
TP = NormalizeDouble(Ask - TakeProfit*Point, Digits);
如果(OrderSend( Symbol(, OP_SELL, LotA*Lots, Bid, 7, SL, TP, "AI_test_close", _MagicNumber, 0, Red ) < 0 )
{
_GetLastError = GetLastError()。
Print("CASE OrderSend OP_SELL错误#", _GetLastError )。
Err=4。
返回(-1)。
}
否则Err=0。
突破。
}
}
这里有一个EA,使订单在蜡烛的收盘时打开,而不仅仅是一个十字星。
我想知道如何打开订单。
那你打算如何知道酒吧将以这个刻度收盘?也许是通过新酒吧 的开业?
编码是通过按钮SRC插入的