voidOnTick() { for (int i=0; i<OrdersTotal(); i++) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0); double SL=0,TP=0;
if (STO > buy_level)
{ if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits); if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError()); PlaySound("timeout.wav"); Print("Ордер успешно размещен"); } }
voidOnTick() { for (int i=0; i<OrdersTotal(); i++) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0); double SL=0,TP=0;
if (STO > buy_level)
{ if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits); if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError()); PlaySound("timeout.wav"); Print("Ордер успешно размещен"); } }
由于类型转换可能造成的数据损失
试试吧。
给我看看编译器指向的代码中的那一行
有很多这样的线,这就是为什么我要求为新的终端提供一个适应的模块。但感谢你愿意提供帮助)
有很多这样的线,这就是为什么我要求为新的终端提供一个适应的模块。但感谢你愿意提供帮助)
就在这条线上。
" 由于类型转换 而可能造成的数据损失"
应该是出现错误的代码行的行号和位置。
就是这么简单,你可以修复所有的错误,知道代码中的确切位置
就在这条线上。
" 由于类型转换 而可能造成的数据损失"
应该有一个行号和代码行中出现错误的位置。
这是一个修复所有错误的简单方法,知道代码中的确切位置。
我采用了Alekseu Fedotov 提供的专家顾问,并试图修改它以适应我的需要。
我的需求如下。在魔杖的交叉点,我们开仓,并在相反的交叉点平仓。如果可能的话,我们把头寸转到盈亏平衡点。
但最终什么都没有打开。我正在绞尽脑汁。问题可能是什么?
我采用了Alekseu Fedotov 提供的EA,并试图修改它以适应我的需要。
我的需求如下。如果它们被越过,我们就开仓;如果它们再次被越过,我们就平仓。如果可能的话,我们把头寸转到盈亏平衡点。
但最终什么都没有打开。我正在绞尽脑汁。问题可能是什么?
显示代码中带有CMM错误的那一行,这是最后一次我提供帮助。
显示一个代码片段,说明你如何在你的EA中从指标中读取信号。
takeprofit = 400,
slippage = 10,
Magic = 777;
extern double Lot = 0.5,
buy_level = 15;
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
double SL=0,TP=0;
if (STO > buy_level)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
PlaySound("timeout.wav");
Print("Ордер успешно размещен");
}
}
takeprofit = 400,
slippage = 10,
Magic = 777;
extern double Lot = 0.5,
buy_level = 15;
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
double SL=0,TP=0;
if (STO > buy_level)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
PlaySound("timeout.wav");
Print("Ордер успешно размещен");
}
}
就在这里。
iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0)。
改变周期(时间框架)为1,5,15,30,60,240,1440,10080,43200 //M1.M5.M30 ...等。
或者输入Period() 而不是15,那么当你手动切换TF时,当前的将被自动设置为