[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 910 1...903904905906907908909910911912913914915916917...1145 新评论 [Удален] 2010.10.15 08:01 #9091 Vinin: 维克多,请看一下你的个人留言。 Victor Nikolaev 2010.10.15 08:07 #9092 glasha: 维克多,请看一下你的个人留言。 见过它 evgens 2010.10.15 18:35 #9093 dimon74: OrderSend()是在每个tick点触发的(据我理解)。为了消除这个问题,在启动函数之前放置一个变量,例如int H=0。 进一步的代码。 .......... 如果 ( H==0) { OrderSend(blah blah blah)。 } H=1; 而且不需要代数。而OrdersTotal() 最好不要被用来限制。 我明白了,这对我来说是有效的,我的意思是我必须打开一个订单,它不会在下一个点打开。 第二个订单,第二个订单只有在第一个订单关闭时才需要。 evgens 2010.10.15 23:24 #9094 如果我没弄错的话,一定是这样的? int H=0。 int F=OrdersTotal()。 .......... 如果(F<1) { 如果 ( H==0) { OrderSend(blah blah blah)。 } H=1;} [删除] 2010.10.16 06:52 #9095 gheka: 如果我没弄错的话,一定是这样的? int H=0。 int F=OrdersTotal()。 .......... 如果(F<1) { 如果 ( H==0) { OrderSend(blah blah blah)。 } H=1;} total = CountTrades(); if (total < 1) { ticket = OrderSend } int CountTrades() { int count = 0; for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) if (OrderType() == OP_SELL || OrderType() == OP_BUY) count++; } return (count); } [Удален] 2010.10.16 07:37 #9096 gheka: 这是可以理解的,一切都对我有用,我的意思是一个订单被打开,而不是在下一个点打开。 第二个订单,只有在第一个订单关闭时才需要第二个订单。 你应该在这里检查。 Superjake 2010.10.16 13:51 #9097 大家下午好。我不太擅长写EA,我试图学习这些东西,但我刚刚开始,对我来说相当困难。我想写一个EA,当价格穿越移动平均线时开仓交易,并在相反的穿越处平仓,可以使用止损或追踪止损。我找到了这样一个EA的例子,但没有拖曳止损或止损,交易只是在穿越时打开和关闭。我没有足够的知识来做这个。我想请人帮助我在哪里设置追踪止损和止损,以及如何使其发挥作用。 #财产版权"Jake Sunders" #属性链接 "feloq@mail.ru" #define STATE_SQUARE 0 #define STATE_LONG 1 #define STATE_SHORT 2 //---- 输入参数 外来int MAPeriod=26; 外来的双倍LotsNumber=1.0。 外来的双倍TrailingStop=50。 外置双倍止损=50。 //---- 全局变量 int 当前状态。 int MyOrderTicket; //+------------------------------------------------------------------+ //|专家初始化功能| //+------------------------------------------------------------------+ int init() { //---- 如果(iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0]) 当前状态 = STATE_SHORT。 否则 CurrentState = STATE_LONG; MyOrderTicket = 0; //---- return(0); } //+------------------------------------------------------------------+ //|专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { //---- int err; 双料硕士。 MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0)。 如果 ( CurrentState == STATE_LONG) { if (MA > Close[1]) //移动平均线高于收盘价。 { 当前状态 = STATE_SHORT。 //转而出售 //-----------如果打开了,就关闭位置 if ( MyOrderTicket != 0) { 如果(!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE)) { err = GetLastError()。 Print("关闭位置时出错:", err)。 return(0); } MyOrderTicket = 0; } RefreshRates()。 //------------- 多头头寸成功平仓 //---- 现在让我们建立一个卖出头寸 //----检查自由资金 MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0, null, 0, 0, clr_none)。 如果(MyOrderTicket<0) { err = GetLastError()。 Print("开仓时出错:", err)。 MyOrderTicket = 0; } } } 否则 { if (MA < Close[1]) // 滑动平均线低于收盘价 { 当前状态 = STATE_LONG; //反过来买 //-----------如果打开了,就关闭位置 if ( MyOrderTicket != 0) { 如果(!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE)) { err = GetLastError()。 Print("关闭位置时出错:", err)。 return(0); } MyOrderTicket = 0; } RefreshRates()。 //------空头头寸被成功平仓 //---- 现在让我们开一个买入头寸 //----检查自由资金 MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0, null, 0, 0, clr_none)。 如果(MyOrderTicket<0) { err = GetLastError()。 Print("开仓时出错:", err)。 MyOrderTicket = 0; } } } //---- return(0); } [WARNING CLOSED!] Any newbie 如何编码? [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. [Удален] 2010.10.16 15:17 #9098 人们,请指教!如何在蜡烛或烛台的到期日进行开仓和平仓?也就是说,它在一个新的蜡烛图开盘时开盘,并收盘 如何在蜡烛图的收盘时获取指标值? costy_ 2010.10.16 15:21 #9099 gheka: 我有买入和卖出的订单,几乎50-100个头寸都以相同的价格打开。 如果我没有弄错的话,我应该如何使一个订单开放, - OrdersTotal() 如果是这样,我应该如何使用它,应该把它放在哪里? 我觉得如果没有这个功能,我需要输入整个代数 做交易的条件不对,见两个MA的例子。 costy_ 2010.10.16 15:28 #9100 Superjake: 大家下午好。我不太擅长写EA,我试图学习这些东西,但我刚刚开始,对我来说相当困难。我想写一个EA,当价格穿越移动平均线时开仓交易,并在相反的穿越处平仓,可以使用止损或追踪止损。我找到了这样一个EA的例子,但没有拖曳止损或止损,交易只是在穿越时打开和关闭。我没有足够的知识来做这个。我想请人帮助我在哪里设置追踪止损和止损,以及如何使其发挥作用。 #财产版权 "Jake Sunders" #属性链接 "feloq@mail.ru" #define STATE_SQUARE 0 #define STATE_LONG 1 #define STATE_SHORT 2 //---- 输入参数 外来int MAPeriod=26; 外来的双倍LotsNumber=1.0。 外来的双倍TrailingStop=50。 外置双倍止损=50。 //---- 全局变量 int 当前状态。 int MyOrderTicket; //+------------------------------------------------------------------+ //|专家初始化功能| //+------------------------------------------------------------------+ int init() { //---- 如果(iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0]) 当前状态 = STATE_SHORT。 否则 CurrentState = STATE_LONG; MyOrderTicket = 0; //---- return(0); } //+------------------------------------------------------------------+ //|专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() { //---- int err; 双料硕士。 MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0)。 如果 ( CurrentState == STATE_LONG) { if (MA > Close[1]) //移动平均线高于收盘价。 { 当前状态 = STATE_SHORT。 //转而出售 //-----------如果打开了,就关闭位置 if ( MyOrderTicket != 0) { 如果(!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE)) { err = GetLastError()。 Print("关闭位置时出错:", err)。 return(0); } MyOrderTicket = 0; } RefreshRates()。 //------------- 多头头寸成功平仓 //---- 现在让我们建立一个卖出头寸 //----检查自由资金 MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0, null, 0, 0, clr_none)。 如果(MyOrderTicket<0) { err = GetLastError()。 Print("开仓时出错:", err)。 MyOrderTicket = 0; } } } 否则 { if (MA < Close[1]) // 滑动平均线低于收盘价 { 当前状态 = STATE_LONG; //反过来买 //-----------如果打开了,就关闭位置 if ( MyOrderTicket != 0) { 如果(!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE)) { err = GetLastError()。 Print("关闭位置时出错:", err)。 return(0); } MyOrderTicket = 0; } RefreshRates()。 //------空头头寸被成功平仓 //---- 现在让我们开一个买入头寸 //----检查自由资金 MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0, null, 0, 0, clr_none)。 如果(MyOrderTicket<0) { err = GetLastError()。 Print("开仓时出错:", err)。 MyOrderTicket = 0; } } } //---- return(0); } 请看这个例子 1...903904905906907908909910911912913914915916917...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
维克多,请看一下你的个人留言。
见过它
OrderSend()是在每个tick点触发的(据我理解)。为了消除这个问题,在启动函数之前放置一个变量,例如int H=0。
进一步的代码。
..........
如果 ( H==0)
{
OrderSend(blah blah blah)。
}
H=1;
而且不需要代数。而OrdersTotal() 最好不要被用来限制。
我明白了,这对我来说是有效的,我的意思是我必须打开一个订单,它不会在下一个点打开。
第二个订单,第二个订单只有在第一个订单关闭时才需要。
如果我没弄错的话,一定是这样的?
int H=0。
int F=OrdersTotal()。
..........
如果(F<1)
{
如果 ( H==0)
{
OrderSend(blah blah blah)。
}
H=1;}
如果我没弄错的话,一定是这样的?
int H=0。
int F=OrdersTotal()。
..........
如果(F<1)
{
如果 ( H==0)
{
OrderSend(blah blah blah)。
}
H=1;}
这是可以理解的,一切都对我有用,我的意思是一个订单被打开,而不是在下一个点打开。
第二个订单,只有在第一个订单关闭时才需要第二个订单。
大家下午好。我不太擅长写EA,我试图学习这些东西,但我刚刚开始,对我来说相当困难。我想写一个EA,当价格穿越移动平均线时开仓交易,并在相反的穿越处平仓,可以使用止损或追踪止损。我找到了这样一个EA的例子,但没有拖曳止损或止损,交易只是在穿越时打开和关闭。我没有足够的知识来做这个。我想请人帮助我在哪里设置追踪止损和止损,以及如何使其发挥作用。
#财产版权"Jake Sunders"
#属性链接 "feloq@mail.ru"
#define STATE_SQUARE 0
#define STATE_LONG 1
#define STATE_SHORT 2
//---- 输入参数
外来int MAPeriod=26;
外来的双倍LotsNumber=1.0。
外来的双倍TrailingStop=50。
外置双倍止损=50。
//---- 全局变量
int 当前状态。
int MyOrderTicket;
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int init()
{
//----
如果(iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0])
当前状态 = STATE_SHORT。
否则 CurrentState = STATE_LONG;
MyOrderTicket = 0;
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
int err;
双料硕士。
MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0)。
如果 ( CurrentState == STATE_LONG)
{
if (MA > Close[1]) //移动平均线高于收盘价。
{
当前状态 = STATE_SHORT。
//转而出售
//-----------如果打开了,就关闭位置
if ( MyOrderTicket != 0)
{
如果(!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE))
{
err = GetLastError()。
Print("关闭位置时出错:", err)。
return(0);
}
MyOrderTicket = 0;
}
RefreshRates()。
//------------- 多头头寸成功平仓
//---- 现在让我们建立一个卖出头寸
//----检查自由资金
MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0,
null, 0, 0, clr_none)。
如果(MyOrderTicket<0)
{
err = GetLastError()。
Print("开仓时出错:", err)。
MyOrderTicket = 0;
}
}
}
否则
{
if (MA < Close[1]) // 滑动平均线低于收盘价
{
当前状态 = STATE_LONG;
//反过来买
//-----------如果打开了,就关闭位置
if ( MyOrderTicket != 0)
{
如果(!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE))
{
err = GetLastError()。
Print("关闭位置时出错:", err)。
return(0);
}
MyOrderTicket = 0;
}
RefreshRates()。
//------空头头寸被成功平仓
//---- 现在让我们开一个买入头寸
//----检查自由资金
MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0,
null, 0, 0, clr_none)。
如果(MyOrderTicket<0)
{
err = GetLastError()。
Print("开仓时出错:", err)。
MyOrderTicket = 0;
}
}
}
//----
return(0);
}
人们,请指教!如何在蜡烛或烛台的到期日进行开仓和平仓?也就是说,它在一个新的蜡烛图开盘时开盘,并收盘
如何在蜡烛图的收盘时获取指标值?
我有买入和卖出的订单,几乎50-100个头寸都以相同的价格打开。
如果我没有弄错的话,我应该如何使一个订单开放, - OrdersTotal()
如果是这样,我应该如何使用它,应该把它放在哪里? 我觉得如果没有这个功能,我需要输入整个代数
做交易的条件不对,见两个MA的例子。
大家下午好。我不太擅长写EA,我试图学习这些东西,但我刚刚开始,对我来说相当困难。我想写一个EA,当价格穿越移动平均线时开仓交易,并在相反的穿越处平仓,可以使用止损或追踪止损。我找到了这样一个EA的例子,但没有拖曳止损或止损,交易只是在穿越时打开和关闭。我没有足够的知识来做这个。我想请人帮助我在哪里设置追踪止损和止损,以及如何使其发挥作用。
#财产版权 "Jake Sunders"
#属性链接 "feloq@mail.ru"
#define STATE_SQUARE 0
#define STATE_LONG 1
#define STATE_SHORT 2
//---- 输入参数
外来int MAPeriod=26;
外来的双倍LotsNumber=1.0。
外来的双倍TrailingStop=50。
外置双倍止损=50。
//---- 全局变量
int 当前状态。
int MyOrderTicket;
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int init()
{
//----
如果(iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0) > Close[0])
当前状态 = STATE_SHORT。
否则 CurrentState = STATE_LONG;
MyOrderTicket = 0;
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
int err;
双料硕士。
MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0)。
如果 ( CurrentState == STATE_LONG)
{
if (MA > Close[1]) //移动平均线高于收盘价。
{
当前状态 = STATE_SHORT。
//转而出售
//-----------如果打开了,就关闭位置
if ( MyOrderTicket != 0)
{
如果(!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE))
{
err = GetLastError()。
Print("关闭位置时出错:", err)。
return(0);
}
MyOrderTicket = 0;
}
RefreshRates()。
//------------- 多头头寸成功平仓
//---- 现在让我们建立一个卖出头寸
//----检查自由资金
MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0,
null, 0, 0, clr_none)。
如果(MyOrderTicket<0)
{
err = GetLastError()。
Print("开仓时出错:", err)。
MyOrderTicket = 0;
}
}
}
否则
{
if (MA < Close[1]) // 滑动平均线低于收盘价
{
当前状态 = STATE_LONG;
//反过来买
//-----------如果打开了,就关闭位置
if ( MyOrderTicket != 0)
{
如果(!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE))
{
err = GetLastError()。
Print("关闭位置时出错:", err)。
return(0);
}
MyOrderTicket = 0;
}
RefreshRates()。
//------空头头寸被成功平仓
//---- 现在让我们开一个买入头寸
//----检查自由资金
MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0,
null, 0, 0, clr_none)。
如果(MyOrderTicket<0)
{
err = GetLastError()。
Print("开仓时出错:", err)。
MyOrderTicket = 0;
}
}
}
//----
return(0);
}
请看这个例子