[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 100

 

为什么没有卖出条目?

入境条件

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_S=true; // Критерий откр. Sell }

如果你设置了

RSI>50买入

rsi<50卖出

它的工作原理是这样的,所以既有卖出也有买入。

 
Dimka-novitsek:
当我把止损点移到离价格20个点的地方时,专家顾问开始工作,没有更近的了!!。 我想知道错误130是从哪里来的,是来自经纪服务器吗?

是的,服务器...固定规模是好的,但最好看看MarketInfo,它只是有目前的止损水平,它可以改变。https://docs.mql4.com/ru/constants/marketinfo

MODE_STOPLEVEL14最小止损/止盈水平,单位:点
 
我会记住这一点的!(大概)
 

伙计们请告诉我.... 问题是,我在终端有一个小数点后5位,在一个货币对上有5笔交易,我用一个循环来关闭所有的订单

问题是,这个循环以不同的价格关闭订单! 如果我有5个订单,那么其中只有3个或2个是以一个价格成交的,其他的是以不同的价格成交的...... 如何使所有订单以一个价格成交?????

if (сумма по профиту всех сделок >= заданная сумма)

{

for (цикл перебора ордеров)

{

if (проверка на символ)

{

if (ордертип==бай)

{

закрыть ордера по БИД цене 

} 

if (ордертип==сел)

{

закрыть ордера по Аск цене 

}  

} 

} 

} 
 
SeALALex:

谢谢你,我告诉过你我只是在学习,我可以问一个问题,LotsInitial - 有什么作用?因为它可以正确地建立订单,我不明白什么原理可以打开这样一个手数的订单?

词典会回答你的问题。那你到底有没有研究过代码?多久?如果这是你的代码,你不会花很长时间去理解这10行添加的含义。


vilard:

为什么没有卖家登录?

入境条件

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_B=true; // Критерий откр. Buy
}

如果你设置了

RSI>50买入

rsi<50卖出

它的工作原理是这样的,所以有卖有买。

你在哪里看到SELL?:((


VOLDEMAR:

伙计们,请告诉我.... 我的客户终端有一个小数点后5位的问题。一个货币对有5笔交易,我用一个循环来关闭所有订单

问题是,这个循环以不同的价格关闭订单! 如果我有5个订单,那么其中只有3个或2个是以一个价格成交的,其他的是以不同的价格成交的...... 如何使所有订单以一个价格成交?????

关闭一个订单需要时间。在这段时间内,价格很容易发生变化。答案是显而易见的。


人们,一个问题。

有一个终端在两台电脑上运行,账户相同。假设如果你试图从不同的电脑上同时关闭两个不同的订单,终端会有什么反应?:))"交易再忙。"?

虽然在我看来,如果你在一台电脑上打开两个终端,并连接到一个账户,但你不能同步关闭订单,这也是一样的...

 

如果我重复这个问题,我表示歉意,因为我没有在主题历史中找到它。

我需要专家顾问 一直记录 订单利润数据

如果放在桌子上会更好。

对于初学者来说,这里是代码。

int h=FileOpen("test.txt",FILE_BIN|FILE_WRITE);
   for (int j=0; j<OrdersTotal(); j++)         // По всем ордерам
  {
   if(OrderSelect(j,SELECT_BY_POS)==true)  // Если есть следующ.
     {                                     
      double ТР =    OrderTakeProfit();     // TakeProfit ордера
      double Profit= OrderProfit();         // Прибыль по ордеру
      double Lots  = OrderLots();           // Количество лотов
      //......Использование значений ТР и Profit в программе..... 
      FileWriteInteger(h,Profit,LONG_VALUE);
      FileWrite(h,"\n");
      FileClose(h);
     }
  }     
Вопрос, а где создать файл? как лучше это все реализовать?
 
Max7,我感兴趣的是,为什么指标不能像它应该的那样工作,那些通过越过 "0 "的指标,我再次重申,在rsi<>50的标准下,所有的工作都很正常
 
nuan:

如果我重复这个问题,我表示歉意,因为我没有在这个话题的历史中找到它。

我需要它一直记录订单的利润数据。

如果放在桌子上会更好。

对于初学者来说,这里是代码。

在你想写任何东西之前创建一个文件。

在所有东西都写进文件后,关闭文件。

在你的案例中,函数init()和deinit()将发挥作用。


vilard:
Max7,我感兴趣的是,为什么指标不能像它应该的那样工作,那些通过跨越 "0",我再次重复,在rsi<>50的标准下,一切工作正常

寞7...有趣的是!:DD


指数指示器工作正常。你最好检查一下你之前写的代码。

 
我去过那里,你能给我一个例子或一个函数吗。
 
nuan:
我去过那里,你能给我一个例子或一个函数吗。

是的,我没有仔细阅读你的问题!:))答案就在上面...

根据你的代码,该文件将被创建一次,但它被关闭的次数与循环发现的订单数量相同。

如果这段代码是在start()函数中,那么这个麻烦就会在每个tick中发生。而且每次执行FileOpen后,你的文件都会被清空...

你也可以把OrderSymbol()、OrderTicket()、OrderType()和其他可选的信息写到文件中。否则你怎么能把OrderProfit()区分开来?为此,最好以表格的形式输入文件(FILE_CSV),这样在Excel中很容易打开。

原因: