[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 140

 
valeryk:

bool NewBar()
{static datetime newbar;
bool res=false;
if(newbar==0)newbar=Time[0];
if(newbar!=Time[0]){res=true;newbar=Time[0]; }
return(res);
}

新酒吧的存在 .

我的理解是,符号被放在条形图的开盘价 上。而且我需要它是在收盘价。
我从未设法插入你的代码,因为我不是一个程序员。它尤其对这个bool NewBar()表示不满。
 
supernyb:
我理解的是,图标被设置在酒吧的开盘价上。我需要它是在收盘价上。
我没能插入你的代码,因为我不是一个程序员。它尤其对这个bool NewBar()表示不满。
请注意报价的时间和条形图设置的时间:15分钟。 你认为Close[0]在这段时间内可能会发生变化吗?
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(NevBar()) 
     {
     //в этом блоке размещайте ваш код
     }    
//----
   return(0);
  }
//-----------------------------------------------------------------------------+
// Функция контроля нового бара                                                |
//-----------------------------------------------------------------------------+
bool NevBar(){
   static int PrevTime=0;
   if (PrevTime==Time[0]) return(false);
   PrevTime=Time[0];
   return(true);} 
 

请再来一次。你好,我以S.Kovalev的教程中的脚本为基础。我想做一个专家顾问,开一笔交易,设置止损,获利,然后等待交易结束(即止损或获利),然后才重新开仓。我试着用循环和循环中断。请告知如何做到这一点。我想,不同时设置止损和止盈可能更容易,价格接近某个水平时就会平仓。 但我不想这样做,因为我害怕滑点,每个点对我都很重要。我已经了解到,我一次打开一个交易或有时是几个交易(这也是错误的吗?),但在交易结束后我不能打开新的交易。或者建议如何规定,使程序等待性能止损或tekaprofit,并仅在那时继续?

//+------------------------------------------------------------------+
int start() //---- function start
{
double //---- declare variables
x,
y;
//+------------------------------------------------------------------+
OrderSend(Symbol(,OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //----市场订单买入,并在开盘价的基础上设止损和盈利15点
//+------------------------------------------------------------------+
while(x!=Ask-15*Point||y!=Ask+15*Point)//---- 的条件,我希望交易在前一个交易结束之前被关闭,即:е.有可能
{//-----,只保留一笔交易
继续。//---- 中断该条件并进入下一步
}
//+------------------------------------------------------------------+
return;//---- function return
}
//+------------------------------------------------------------------+

 

如果你不关心是否有止损或止盈,为什么不直接检查是否有未平仓的订单?

如果(OrdersTotal()< 1)

 

你能告诉我在这种情况下可以做什么吗?我有一个指标。我必须在图表中画一条垂直线,然后调用属性,复制数字,然后在指标中输入它。

如果指标能放在你用鼠标点击的地方就好了。

或者,至少可以用鼠标在图表上移动它。


附加的文件:
indicator.mq4  3 kb
 
Begemot7:

请再来一次。你好,我以S.Kovalev的教程中的脚本为基础。我想做一个专家顾问,开一笔交易,设置止损,获利,然后等待交易结束(即止损或获利),然后才重新开仓。我试着用循环和循环中断。请告知如何做到这一点。我想,不同时设置止损和止盈,让价格在接近某个水平时平仓可能更容易。 我不想这样做,因为我害怕滑点,每个点对我都很重要。我已经了解到,我一次打开一个交易或有时是几个交易(这也是错误的吗?),但在交易结束后我不能打开新的交易。或者建议如何规定,使程序等待性能止损或tekaprofit,然后才进一步?

int ticket=-1;
int start()       //---- функеция старт            
  {
  double     //---- объявляю переменные 
  x,
  y;
  bool sel;
  //+------------------------------------------------------------------+
  sel=false;
  if(ticket>=0)
   {
    sel=OrderSelect(ticket,SELECT_BY_TICKET);if(!sel) ticket=-1;
   }
  if(ticket<0 || (sel && ticket>=0 && OrderCloseTime()>0)) ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point);
   return;                                                          //---- функция return 
    }

或者最好像这样(在重新启动专家顾问的情况下)。

int ticket=-1;
int init()
 {
  if(GlobalVariableCheck("TICKET")) ticket=GlobalVariableGet("TICKET");
  else ticket=-1;
 }
int start()          
 {
  bool sel;
  sel=false;
  if(ticket>0)
   {
    sel=OrderSelect(ticket,SELECT_BY_TICKET);if(!sel) ticket=-1;
   }
  if(ticket<=0 || (sel && ticket>0 && OrderCloseTime()>0))
   {
    ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point);
    if(ticket>0) GlobalVariableSet("TICKET",ticket);
   }
   return; 
  }
 
r772ra:
注意报价时间,以及图标设置的时间,15分钟,你认为Close[0]在这段时间内是否可以改变 。


谢谢你,这正是你所需要的。我已经按你说的做了,一切都成功了!我还在Star Price中放了Close[1]而不是Close[0],结果我的标记是在收盘价上 画的。它不像我想象的那样等待一个酒吧。
 
001:

我想让指标放在你用鼠标点击的地方。

为了获得指标被抛出的那一点的坐标,你可以使用函数。

WindowXOnDropped()

WindowYOnDropped()

价格和时间。

跌价窗口(WindowPriceOnDropped)。

掉线时间(WindowTimeOnDropped)。

 
valeryk:

bool NewBar()
{static datetime newbar;
bool res=false。
如果(newbar==0)newbar=Time[0];
if(newbar!=Time[0]){res=true;newbar=Time[0];}。
return(res)。
}

有一个新的酒吧.


这是大师对你的代码的评价!

在你的版本中,静态日期时间newbar 没有被初始化为0 这是不正确的。

 
Sepulca:

最好是这样(万一EA被重新启动)。

IMHO - 最好是搜索你的订单,看看它是否在市场上或关闭,以及它是如何关闭的,通过采取,停止或手动。从这里开始,我们将开始向不同的方向跳舞。

那么一切都将是准确的。而且全局变量 可能会丢失...