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

 
Ekburg:

那又怎样?"这有用吗?)


嗯,是的。你可以自己检查一下=)将金额设置在700美元以上,然后测试一下=)。5分钟的间隔

你也可以修改它,让它每天晚上自己启动=)。

 
SpikeOne:


嗯,是的。你可以自己检查一下=)将金额设置在700美元以上,然后测试一下=)。5分钟的间隔

你也可以修改它,让它每天晚上自己启动=)


我明白了)))。那么,祝你在征服有利可图的高地时好运吧))
 

你好。

如果我这样尝试,我有一个问题,但我从来没有发现它......如果我这样尝试,订单将把前一栏的价值作为TakeProfit......。我两种方法都试过了......订单从来没有看到这个变量并跳过它......结果,TP被设置为0或1或2......

脑子里想的东西都试过了,但没有用....。最不清楚的是,如果我把 "TP ="换成 "Print",它就会写出所有的东西。帮助一个初学者....我将非常感激。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue) 。

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP=((High[i]- Low[i])*3)。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue)。

____________________________________________________________________________________________

 
PaMyC:

你好。

如果我这样尝试,我有一个问题,但我从来没有发现它......如果我这样尝试,订单将把前一栏的价值作为TakeProfit......。我用不同的方法试了一下......订单从来没有看到过这个变量并跳过它......结果,TP被设置为0或1或2......。

脑子里想的东西都试过了,但没有用....。 最不清楚的是,如果我把 "TP ="换成 "Print",它就会写出所有的东西。 帮助一个初学者....我将非常感激。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), " ", 123, 0, Blue);

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP=((High[i]- Low[i])*3)。

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue)。

____________________________________________________________________________________________



OrderSend() 中的thp不是点数,而是订单将被关闭的价格,当你设置thp时,有必要记住关于冻结的水平(每个DTZ都有自己的问题)

可能是有用的,谢谢Artem。

artmedia70 15.12.2013 22:34 #

还有一个未计入的StopLevel。如果你不知道,它可能等于零,那么它的计算方法就不同。以Alpari为例,它始终是零,但有限制,它们被算作价差*2。

因此,首先定义StopLevel。

在全球范围内。

int level=0, sp=0;

然后在start():

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

然后已经将止损单的大小与收到的水平进行比较,并使用计算出的正确值进行止损单。

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

我的代码中也不只是有项目,我有一个价格值...

我想我明白你的代码是怎么说的,但它应该如何帮助......?

 
PaMyC:

我的代码中也不只是有项目,我有一个价格值...

我想我明白你的代码中写了什么,但它应该如何帮助......?


解释

鉴于。

低=1.3674

高=1.3811

询问=1.3734

你的计算结果。

问价+((High[1]-Low[1])*3)*点=1.3734+((1.3811-1.3674)*3)*点=1.3734+(0.0137*3)*点=1.3734+(0.0411)*点=1.3734+411=412.3734 - 对我来说似乎不是一个好的报价)

只要去掉点的乘法,就可以了)

 
PaMyC:

我的代码中也不只是有项目,我有一个价格值...

我想我明白你的代码是怎么说的,但它应该如何帮助......?


你可以正常打印TP,但当你下订单时,你会把它乘以一个点,把一切都搞乱了...
 
PaMyC:

我的代码中也不只是有项目,我有一个价格值...

我想我明白你的代码是怎么说的,但它应该如何帮助......?


也许这不是一个大数字,而是一个非常小的数字,这就是为什么你把TP设置为0或1。
 
vadynik:
你能告诉我如何做一个虚拟的尾巴,如何取代OrderModify()?


我有一个带尾随的机器人块,包括普通的和我自己的特定块(用于新闻运动)。

我可以把它寄给你,但这取决于你)。

 
Ekburg:

你正常打印TP,但在下订单时,你又一次乘以点,把一切都搞乱了......。


非常感谢,这很有帮助),只是删除了这个点,奇迹都完成了))))。

正如我所想的,这个错误非常小,但却如此令人讨厌......