[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 765

 

我需要止损点的挂单 价格,我以前是这样使用挂单

PRAskL=Ask-Point*TakeProfit+Spread;  // цена OpenBuyLimitOrder
PRAskS=Ask+Point*TakeProfit+Spread;  // цена OpenBuyStopOrder
PRBidL=Bid+Point*TakeProfit-Spread;  // цена OpenSellLimitOrder
PRBidS=Bid-Point*TakeProfit-Spread;  // цена OpenSellStopOrder

где 
TakeProfit - глобальная переменая и грубо говоря ее значение постояно
Spread - временая переменая,



но мне не удобно брать цену через рынок и решил напрямую вот так
for(int h=1; h<=OrdersTotal(); h++)         
{if (OrderSelect(h-1,SELECT_BY_POS)==true)   
int Tip=OrderType();                   
if(HaveBuyOrder == true)continue; 
double PRAskS=OrderStopLoss();                   
double PRAskL=OrderTakeProfit();                    
int Tip1=OrderType();                           
if(HaveSellOrder == true)continue; 
double PRBidS=OrderStopLoss();                   
double PRBidL=OrderTakeProfit();   

но оно выдает ошибки 
Ошибка № 4107 при открытиии SELL ордера 
invalid takeprofit for OrderSend function

Ошибка № 4107 при открытиии BUY ордера              
invalid takeprofit for OrderSend function

我需要一个止损点和一个日元价格,我需要考虑到点差。

 
FoxUA:

我需要止损点的挂单价格,我以前是这样使用挂单的

我如何解决这个问题,我应该能够在止损点拿下日元并获得利润,同时我也应该考虑到点差。

安德烈,我们又来了,代码太少了,你在函数 OrderSend中出现了错误,而我们在这个代码部分看不到它或它的参数。你想根据已经存在的市场订单的止损和止盈来下挂单吗?

 
ToLik_SRGV:

安德鲁,我们又来了,代码太少了,你在函数 OrderSend中出现了错误,我们在这部分代码中看不到它和它的参数。你想根据已经存在的市场订单的止损和止盈的数据来下挂单吗?

是的,这是正确的,根据现有市场订单的止损和止盈的数据来投放挂单

整个代码太大,这是一个例子,说明它是如何为我工作的,我试图做什么,但它是不正确的,对我来说什么是正确的?

 

我有一个基于规则的例子,它现在打开了,但只有一个订单,一个卖出订单。

即所有4个挂单,即买入损失和卖出损失的开盘价以及买入止损和卖出止损都是一样的。

我想在收盘时立即打开买入限制,例如在停止时买入。

GBPJPY,H1:卖出订单 打开 : 137.16
GBPJPY,H1: 开盘#3897394 卖出上限0.30 GBPJPY 在137.16 狭缝: 138.36 Tp: 135.96 ok
GBPJPY,H1: 卖出订单打开 : 134.76
GBPJPY,H1:开盘#3897393卖出止损0.10 GBPJPY在134.76的位置sl: 135.96 tp: 133.56 ok
GBPJPY,H1: 买入订单打开 : 134.76
GBPJPY,H1: 开盘#3897392买入限额0.30 GBPJPY在134.76的位置,Sl: 133.56 tp: 135.96 ok
GBPJPY,H1: 买入订单打开 : 137.16
GBPJPY,H1: 开盘#3897391买入止损0.10 GBPJPY在137.16 sl: 135.96 tp: 138.36 ok
GBPJPY,H1: 卖出订单打开 : 135.96
GBPJPY,H1: 开盘#3897390,在135.96卖出0.10GBPJPY,sl: 137.16 tp: 134.76 ok
GBPJPY,H1: 买入订单打开 : 136.04
GBPJPY,H1: open #3897389 buy 0.10 GBPJPY at 136.04 sl: 134.84 tp: 137.24 ok
GBPJPY,H1: 初始化
GBPJPY,H1输入:StopLoss=120; TakeProfit=120; Lot=0.1; Magic=777; Slippage=5。
GBPJPY,H1:加载成功

for(int o=1; o<=OrdersTotal(); o++)                                   
{if (OrderSelect(o-1,SELECT_BY_POS)==true)                               
{ if (OrderSymbol()!= Curr_symb) continue;                          
  if (OrderType()>1) continue;      
{if(HaveBuyOrder == true) 
double PRAskL=OrderStopLoss();                   
double PRAskS=OrderTakeProfit();      
{                   
int Tip1=OrderType();                         
if(HaveSellOrder == true)
double PRBidL=OrderStopLoss();                   
double PRBidS=OrderTakeProfit(); } }                  
} }              
 
hedger:

帮我搞清楚。

在测试完成后可以在测试器中打开的图表上,EA所基于的指标并不总是被画出来。这是否可以解决,如果可以,如何解决? 请回答我

也许我的问题有一个答案?
 
hedger:

也许我的问题有一个答案?

空白的HideTestIndicators( bool hide)
该函数设置标志以隐藏专家顾问所调用的指标。当测试 后打开图表时 标有隐藏标志的指标 将不会在测试图表中显示。在每次调用之前,指标将被标记为当前的隐藏标志。
必须注意的是,只有那些从被测专家那里直接调用的指标才能在测试图表中显示。
 
zhuki:

空白的HideTestIndicators( bool hide)
该函数设置标志以隐藏专家顾问所调用的指标。当测试后打开图表时,标有隐藏标志的指标将不会在测试图表中显示。在每次调用之前,指标将被标记为当前的隐藏标志。
应该注意的是,只有那些被测试的专家顾问直接调用的指标可以显示在测试图表中。

谢谢你,伊戈尔!我不得不盲目地学习基础知识。
 

那么,有没有人知道如何修复上述代码,以设置变量的值,比如说

PRAskL=买入订单的止损+点差
PRAskS=买入订单的获利+点差
PRBidL=StopLoss 卖出-扩散订单
PRBidS=获利卖出-跨期订单

 
FoxUA:

那么,有谁知道如何修复上述代码,以设置这样的变量值呢?

PRAskL=止损单 买入+价差
PRAskS=获利单 买入+价差
PRBidL=止损单 卖出-价差
PRBidS=获利单 卖出-价差

如果你有与错误的止损有关的错误,那么就对止损位的大小做一个检查;也用它们来检查挂单--你不能把小于...

比如说。

double Level_stop=MarketInfo(Symbol(),MODE_STOPLEVEL ); //最小止损设置距离

 
artmedia70:

如果你有与错误的止损有关的错误,那么对止损位的大小做一个检查;也用它们来检查挂单--不允许少。

比如说。

double Level_stop=MarketInfo(Symbol(),MODE_STOPLEVEL ); //最小的止损设置距离


最后一个打开时没有错误,但它只打开了卖出数据。这是从日志中剪下来的,这不是我描述的正确价格分布。

他们在这里。

PRAskL=止损买入+价差订单
PRAskS=买入+价差订单的获利。
PRBidL=StopLoss 卖出-扩散订单
PRBidS=获利卖出-跨期订单

这就是它现在的样子

PRAskL=StopLoss 卖出订单

PRAskS=获利卖出订单

PRBidL=StopLoss 卖出订单

PRBidS=获利卖单

原因: