[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 65

 
Vinin:

我将用我的方式来做,倒计时将是不同的。我总是从过去走到现在。但这是一个品味问题。事实上,有了正确的方法,这其实并不重要。

你好。

请帮助处理该页面。(56号文,58页)。

 
Roger:


可能是太快了,你应该研究一下。:-)

那么你就会知道,你是按要价买入,按出价卖出。如果我们卖掉它们,它们的价格将低于它们的报价。


不,这与你写的正好相反。 当然,感谢你的关注。 我努力思考,这样那样地想出来,你错了。

总的来说,我看到问题不在Aks和Bids上,我也没有解决这个问题。

 
Dimka-novitsek:

对不起,我也有我的。 在这里,我刚刚涌现的代码,它不工作。

//+------------------------------------------------------------------+
//|订单类型.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
double New_Time=0,razniza, r;int i=0,h=0,q=0,w=0,s=0,g=0。
int start()
{int M,Y;
//----
double ticket,Lots=0.2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo (Symbol(), MODE_POINT);
//----
如果(i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"开仓",163899,0,Red);如果(New_Time==0){ New_Time = Time[0];}。Alert("New_Time",New_Time);i++; }
Alert("OrderTypeOP_BUYSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)。
OrderClose( ticket,Lots,Bid,5, 0 )。



如果(h<10)
{
ticket=OrderSend(Symbol(,OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"开仓",163899,0,Red);如果(New_Time==0){ New_Time = Time[0];}。Alert("New_Time",New_Time);h++; }
Alert("OrderTypeOP_SELLSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)。
OrderClose( ticket,Lots,Ask,5, 0 )。

如果(q<10)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,3,0,5*Points+TakeProfit*Points,
"开仓",163899,0,Red);如果(New_Time==0){ New_Time = Time[0];}。Alert("New_Time",New_Time); q++; }
Alert("OrderTypeOP_BUY",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)。
OrderClose( ticket,Lots,Bid,5, 0 )。

如果(w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,5*Points+TakeProfit*Points,
"开仓",163899,0,Red);如果(New_Time==0){ New_Time = Time[0];}。Alert("New_Time",New_Time);w++; }
Alert("OrderTypeOP_SELL",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)。
OrderClose( ticket,Lots,Ask,5, 0 )。

如果(s<10)
{
ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"开仓",163899,0,Red);如果(New_Time==0){ New_Time = Time[0];}。Alert("New_Time",New_Time); s++; }
Alert("OrderTypeOP_BUYLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)。
OrderClose( ticket,Lots,Ask,5, 0 )。

如果(g<10)
{
ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"开仓",163899,0,Red);如果(New_Time==0){ New_Time = Time[0];}。Alert("New_Time",New_Time);g++; }
Alert ("OrderTypeOP_SELLLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)。
OrderClose( ticket, Lots, Bid, 5, 0 ) 。






//----
return(0);
}
//+------------------------------------------------------------------+

我做得相当快,我设置它的目的是为了获得订单类型的数值,它连续打开和关闭所有订单,我是说所有类型。我用指令检查了OrderClose,参数似乎被合理、正确地规定在它们的位置上。 他到底还需要什么?????

 

Alert("当前时间 日", iTime(NULL,PERIOD_D1,5))。

这给了我0,补充。

Alert("",GetLastError())。

给出了一个错误4054

使用错误的系列阵列4054不正确地使用时间序列阵列

我做错了什么?


 

请帮助。该代码应该删除所有货币对上的所有市场订单,但实际上它只删除了抛出EA的窗口上的订单。请帮助我找到这个错误。


空白 关闭所有_b(int Prosk){
string SMB=Symbol();
for (int i=OrdersTotal()-1;i>=0;i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
Alert("Error",GetLastError()," when order number is selected ",OrderTicket()," by pair ",Symbol()) 。
}
否则{
如果(OrderSymbol()!=Symbol()){继续; }
RefreshRates()。
如果(OrderType()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk,CLR_NONE)){
当关闭买入订单时,警告("错误",GetLastError(),",OrderTicket(),",Symbol())。
}
}
如果(OrderType()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){
Alert("Error",GetLastError(),{ when Sell order number is closed ",OrderTicket(),{ by pair ",Symbol())。
} } } } }

预先感谢你。

 
nemo811:

请帮助。该代码应该删除所有货币对上的所有市场订单,但实际上它只删除了抛出EA的窗口上的订单。请帮助我找到这个错误。


但你自己设置的约束:) )

如果(OrderSymbol()!=Symbol()){继续; }

 
sergeev:

但你自己设置的约束:) )

如果(OrderSymbol()!=Symbol()){继续; }


我同意 - 愚蠢的:))应该是怎样的?
 
nemo811:

我同意 - 愚蠢 :)))什么是正确的方式?
...你只要把它删除就可以了。 你不希望剔除货币。所以你必须删除这个条件。
 
我已经删除了它,但其他交易对的订单仍然没有关闭。错误129(错误的价格)开始弹出
 
nemo811:
我已经把它删除了,但我的其他交易的订单无论如何都不会关闭。错误129(错误的价格)不断弹出

右边就会弹出。

你必须从MarketInfo函数中获取买入和卖出价

比如 - ask= MarketInfo(OrderSymbol(), MODE_ASK)。

并且不要忘了将其正常化
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS)

原因: