任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 153

 
EVladMih:

阿特米斯,你从第二个帖子开始向那个人解释他是把白色和热结合起来的,而你唯一解释的是问题中没有人问你的部分。我碰巧知道这个人写了多少代码,是你没有进入正题,而不是他。顺便说一下,这段代码他不是为自己写的,而是为人们写的。

因此,如果你不想或不能帮助,至少不要干涉,不要指责别人的罪过。

有更多知识的人,请帮助satorifx。他真的需要把白的和热的混在一起,但这不是他的错......你知道MT4的具体情况,同一部歌剧的东西在不同的舞台上演唱(不同的坐标系)。

首先。首先,我不是在和你直呼其名。第二--学会正确阅读一个人的绰号,因为你不能使用它。第三--我将给你一个提示,如何识别与趋势线的交叉点。在专门为初学者编写的例子中,趋势线本身不用于计算。它只是一个线索,说明应该朝什么方向前进。然而,有很多方法可以解决这个问题。没有必要纠缠于坐标不相容的问题,而是要决定如何利用现有的输入数据摆脱这种局面。

И...这...我可以写出你还没有梦想过的东西...

 

EVladMih:,

但你也许不应该根据本地/非本地的情况把人分成澡堂。

这不是关于某个人的 "本地/非本地"。这是关于这个人提出问题的方式。如果我弄错了他的问题,这并不意味着他有权利无礼。我真诚地想帮助他。而且我想,如果他在我的回答之后告诉我,这不是他想要的和要求的,并解释给他的具体任务,我们就会想出如何快速有效地完成一切。

现在你在说他不能确定与趋势线 的交叉点。但这只是让你微笑。或者,也许我又搞错了,应该再来一次粗暴的行为?简单的ObjectGetValueByShift()函数将返回某条趋势线的价格。因此,将一个价格与另一个价格进行比较。

 
artmedia70:
根据我的理解,他希望对象在屏幕上可见的最低价条上垂直定位,而不是水平移位。我向他展示了他问题的第一部分--如何在图表上找到最小价格。他不明白,对我叫道。现在让他自己去寻找如何在不跨越两个坐标系的情况下做他需要的事情。这很容易。也许别人会替他做,但我告辞了。我不喜欢粗野的人和白吃白喝的人--他甚至懒得去调查此事,自己用代码写点东西。

artmedia70,我 是一个不喜欢对抗的人,如果我说错了话,我道歉,请不要认为是无礼。

我真的不知道如何解决这个问题。

到目前为止,以一种简单的方式跨越了2个坐标系:做了一个标签,并手动将其放在最低价格上--因此我有一个坐标Y标签,它与最低价格 相对应,我通过函数WindowPriceMin() 获得 但这是手动的, 我想用程序来 跟踪和纠正。

如果真的有一个解决方案,而且是一个简单的解决方案,我将非常感谢你的帮助。


 
artmedia70:

现在你说,它不能检测到与趋势线的交叉。但这只是让我微笑。还是我又误解了一切,应得的是另一种粗暴的行为?简单的ObjectGetValueByShift()函数将返回某条趋势线的价格。因此,将一个价格与另一个价格进行比较。


不要听EVladMih 的话-- 说的没有任何意义
我非常清楚如何在价格方面找到与趋势的距离。这个问题是不同的。

我在我的指标中使用标记,永久地挂在屏幕的顶部。就是在移动任何标记后,应该确定从标记到趋势线的距离,但标记在屏幕上有坐标(x,y),而ObjectGetValueByShift对价格起作用,即在另一个坐标系中。这就是所有大惊小怪的原因。

我不能使用带有价格坐标的OBJ_TEXT 对象,因为我希望它能停留在一个地方,就像标签(OBJ_LABEL 对象)那样,如果我移动图表,而不是标签。

 
satorifx:

不要听EVladMih 的话-- 他写的都是废话。
我非常清楚如何在价格方面找到与趋势的距离。这个问题是不同的。

在我的指标中,我使用了不断在屏幕上方盘旋的标记。在任何标记移位后,应该确定从标记到趋势线的距离,但标记在屏幕上有坐标(x,y),而ObjectGetValueByShift则是在价格上工作,即在另一个坐标系中。这就是所有大惊小怪的原因。

我想事先说一下,我不能用价格坐标的OBJ_TEXT 对象代替标签,因为我希望它们(标签)在我移动图表时不会被转移到价格上,而是像标签那样停留在一个地方(OBJ_LABEL 对象)。

为了避免处理重新计算,使用具有恒定X坐标的ARROW=特定条,而不是标签。你可以在对象描述中存储和修改吧。一旦对象被移动,就在它的描述中写入一个等于新条 的新的X坐标。那么在价格搜索方面就不会有任何问题。并始终通过其在水平轴上的描述来定位对象。纵轴是价格。这是一个成本较低的选择。而该对象将始终处于X轴上的同一位置,对应于一个特定的条形号码。

ZS "......我很抱歉,请不要把它当成粗野的......" 没关系,让它去吧......;)

 

我编了一个指标。用一个对子除以另一个对子,以获得未包括在终端中的仪器。但现在它加载终端并在每一个刻度上重新计算。我已经在我的专家顾问中输入了它

如果(Time[0]<=PrevTime)返回(0)。

PrevTime=Time[0];

现在它只在一个新的蜡烛上画。请告诉我如何做到这一点。该指标的文本。

P/S/ 顺便说一下。所有配对都正常显示。我想看看Appl to Ruble。我不希望看到它。

#属性 indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//----输入参数
外部字符串 Paar_1="EURUSD"; //期望的比较符号
extern string Paar_2="GBPUSD"; // 用于比较的理想工具
外部 bool Mirroring_Paar_2=false。
//--- 缓冲区
双倍ExtMapBuffer1[]。
static int PrevTime=0;
int start=1。


//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
//---- 指标
string short_name=Paar_1;
SetIndexStyle(0,DRAW_LINE)。
SetIndexBuffer(0,ExtMapBuffer1)。
IndicatorShortName(short_name)。
SetIndexLabel(0,short_name)。
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
如果(Time[0]<=PrevTime && start==1)返回(0)。
PrevTime=Time[0];
int i, counted_bars=IndicatorCounted()。
i=计算过的条数-1。
//----
while(i>=0){
double Compare1=iClose(Paar_1,0,iBarShift(Paar_1,0,iTime(Paar_1,0,i),FALSE)) 。
double Compare2=iClose(Paar_2,0,iBarShift(Paar_1,0,iTime(Paar_1,0,i),FALSE)) 。
if(Compare2!=0 && Compare1!=0) double Compare=Compare1/Compare2。
if(Mirroring_Paar_2==1) Compare=1/Compare;

ExtMapBuffer1[i]=Compare;
RefreshRates()。
i--;
}
//----
start=0。
return(0);
}
//+------------------------------------------------------------------+y

 
你好
帮助!如何使订单开盘之间有一个延迟,睡眠3000?我不记得确切的。
int start() {
string ls_0;
int li_8;
bool li_12;
int li_20;
int li_24;
double ld_28;
int li_36;
int li_40;
string ls_48;
string ls_56;
string ls_64;
double ld_76;
int li_84;
而它应该进入这里。

为了防止猫头鹰本身

还有一个问题,这个猫头鹰一次定了七对,我特别需要在开单之间做一个停顿!例如,今天有10个订单同时在新闻上被打开,而我需要的是有延迟的订单!"。

谢谢你!

/* 反编译后删除 - Vinin */

 

我刚刚想起来,你能告诉我在哪里插入Sleep(60000);,以便在打开的时候有一个延迟 吗?

如果(ai_8 == OP_BUY) ad_20 = Ask;
如果(ai_8 == OP_SELL) ad_20 = Bid;
if (!IsTradeContextBusy() ){
li_68 = OrderSend(as_0, ai_8, ad_12,NormalizeDouble(ad_20, MarketInfo(as_0, MODE_DIGITS)), ai_28, NormalizeDouble(ad_32, MarketInfo(as_0, MODE_DIGITS)), NormalizeDouble(ad_40,
MarketInfo(as_0, MODE_DIGITS) ) , as_48, ai_56, ai_60, ai_64)
if (li_68 > 0) {
Print("orderSendReliable():成功了!Ticket: " + li_68);
return (li_68);
}



 

你偷了它,但你不知道该如何处理它))

我没有为自己写过任何顾问,我只是阅读,研究歪果仁的街区计划,试图了解最好的方法。

所以我可能是错的。

int counterrore=0, //подщет количества ошибок открытия ордера
timesleep=10000; // время задержки
while () // до тех пор пока не будет выход с цыкла
{
 if (!IsTradeContextBusy())
 { 
  RefreshRates(); // последние данные
  if (ai_8 == OP_BUY) ad_20 = Ask;
  if (ai_8 == OP_SELL) ad_20 = Bid;
  li_68 = OrderSend(as_0, ai_8, ad_12, NormalizeDouble(ad_20, MarketInfo(as_0, MODE_DIGITS)), ai_28, NormalizeDouble(ad_32, MarketInfo(as_0, MODE_DIGITS)), NormalizeDouble(ad_40,
  MarketInfo(as_0, MODE_DIGITS)), as_48, ai_56, ai_60, ai_64);
  if (li_68 > 0) 
  {
   Print("orderSendReliable(): Success! Ticket: " + li_68);
   return (li_68);
  }
  Print("orderSendReliable(): False! Error " + GetlastError()); // поищите коректную функцию обработки ошибок
  counterrore++; // количество неудач - сумирование

  if(counterrore>6) // если не удалось 6 раз открыть
  {
   Print("orderSendReliable(): Error!!! " +counterrore+"times --return(-1)" ); // сообщаем логу о даной трагедии
   return (-1); // -1 или что там Вы придумаете для отработки ситуации
  }
 }
 Sleep (timesleep); // время сна для цикла посылки  запроса на сервер и для !IsTradeContextBusy()
}
 
现在版主会在我面前来禁止最后两个人 :-))