[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 598

 
hoz:

这里是开启头寸的交易功能。

一切都很清楚,很简洁。错误130 在测试器中不断弹出,虽然专家顾问工作,但错误130 不断弹出。那是什么原因呢?

这个函数使用了位置开放函数,这里是它们。

我以为这与停止水平有关,我加了检查,但这是不一样的。我暂时把它删除了,因为在Alpari上这个级别是0。请提示需要改正的地方,以避免这种错误。


我认为这与GetPriceToInput()函数有关。
 
sasha1995:


 double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)];

以欧元兑美元为例,如何以1.30320的格式书写?

归一化双数(...,数字)
 
double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // 查找下一个32条的最大值
double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // 查找下一个32条的最小值
double min=NormalizeDouble(min,Digits); //转换为T/P。

double max=NormalizeDouble(max,Digits); //转换为T/P

Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Buy");

请告诉我们什么是错误?

我想我明白了,ihighest只给出了指数,但我怎样才能找到最高价呢?

 
sasha1995:
double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // 查找下一个32条的最大值
double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // 查找下一个32条的最小值
double min=NormalizeDouble(min,Digits); //转换为T/P。

double max=NormalizeDouble(max,Digits); //转换为T/P

Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Buy");

请告诉我什么是错误? 不希望创建获利。

我想我已经理解了,ihighest只给出了指数,但如何找到最高价格?


高[i]

如果零条的 价格高点 是最后32条中的最高点(价格上升),获利值可能<=当前价格。

 
rigonich:

高[i]

我不明白)请解释
 
sasha1995:
double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // 查找下一个32条的最大值
double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // 查找下一个32条的最小值
double min=NormalizeDouble(min,Digits); //转换为T/P。

double max=NormalizeDouble(max,Digits); //转换为T/P

Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Buy");

请告诉我什么是错误? 不希望创建获利。

我想我明白了,ihighest只提供指数,但如何找到最高价格?

这是一个完整的混乱。对。

 double max= NormalizeDouble (High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)], Digits); // найти максимум последующих 32 баров
 double min= NormalizeDouble (Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)], Digits); // найти минимум последующих 32 баров
 
sasha1995:

我不明白)请解释

当前图表的价格高点被存储在一个数组中 -- 时间序列High[] 。
 
TarasBY:

这是一个完全的混乱。对。


它不工作(仍然没有T/P输出

if(TimeToStr(TimeCurrent(),TIME_SECONDS) == "00:00:00"){ // если время сервера 00:00:00, тогда

 double max= NormalizeDouble (High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)], Digits);

double min= NormalizeDouble (Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)], Digits); // ????? ??????? ??????????? 32 ?????

 }

 int Ticket;

if (TimeToStr(TimeCurrent(),TIME_SECONDS)== "09:00:00"){ // если время сервера 09:00:00, тогда

   if (napravl > 0){ // если направление больше 0, то

      Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0,max, "Покупаю"); // купить и поставить Take profit через 35 пунктов Bid + 385 * Point

      Alert (GetLastError());

   }

   else {

      if (napravl < 0) { // иначе, если направление меньше 0, то

        Ticket=OrderSend (Symbol(), OP_SELL, lot, Bid, 3,0,min, "Продаю"); // продать и поставить Take profit через 35 пунктов Ask - 385 * Point

         Alert (GetLastError());

      }

   }

//----

   return(0);

  } 

 

大家下午好,我对这样一个问题很感兴趣,我怎么能用ticks来操作,从某个事件开始,比如说比较某个事件后的第一个tick和第n个tick的值,据我了解在函数启动过程中价格,比如说Bid所有的时间都被覆盖了,另外我可以用以前的值来操作,但是怎么用pre-prime等来操作,都写在哪里和怎么写?谢谢您的关注)

 
sasha1995:

它没有工作(T/P仍然没有输出

你们都在搞阴谋吗?"仍然没有T/P"--注意解读!做到这一点。

Print ("max = ", max, " | min = ", min);

并展示日志中的内容。

不要忘记,DC通过TP和SL与当前价格 的距离定义了一些规则,这些规则需要被遵守!!!!。