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

 
belck:

我想以这种方式设置一个获利。

if (TakeProfit<10*Point) TakeProfit=10*Point;
指标线在一段时间后会改变其位置。 我怎样才能确保止盈不改变,而保持与我打开时设置的相同?
我很难猜到你为什么要计算TP,TP通常是在下单的时候计算的--然后它将被分配给订单,你需要用OrderModify()来改变它,有时TP是虚拟的,在这种情况下你需要将它保存在数组中。
 
IgorM:
我甚至无法猜测你为什么要计算TP。 通常TP是在下单时计算的--然后它将被分配给订单,你需要用OrderModify()来改变它,有时TP是虚拟的,然后将它存储在一个数组中。

谢谢你的提示。

 

我刚刚做了一个EA,我一直在训练,每次都在变快,但它没有交易!我想知道为什么?

如果可以,请告知,我想我会联系的。

//+------------------------------------------------------------------+
//| 迪蒙的边界.mq4 ||
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"Copyright © 2010, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
Extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
外置双倍BandsDeviations=2.0。
extern double Lots=0.1,TakeProfit=50,stoploss=10。
int init()
{int平均数。
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{double Average, Upper Border, Lower Border, newres, sum, deviation;

Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i)。
//----
newres=Close[i]-Average。
sum=newres*newres。


偏差=BandsDeviations*MathSqrt(sum/BandsPeriod)。
上限=平均+偏差。
下界=平均数+偏差。
//----
如果(上边界<关闭[i])
{ Comment(" buoy!",Upper Boundary ) 。
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green)。

}


如果(下限>收盘[i])
{ Comment(" sell!",Bottom Border );

OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red)。
}
return(0);
}
//+------------------------------------------------------------------+

我对非英语变量表示歉意,对我来说,记住做什么要容易得多。

 
VOLDEMAR:
嗨!我不知道????,这有什么问题?不修改市场订单
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // 计算买入头寸的止损//。
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //计算买入位置的利润//。
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //计算卖出头寸的止损//。
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits)。

//================================================== ==================//
int total=OrdersTotal()。
int n=0。
for (int i=total-1; i>=0; i--)
{
如果(OrderSelect(i, SELECT_BY_POS))
{
如果(OrderSymbol()==Symbol())
{
n++;
}}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
如果(OrderSelect(k, SELECT_BY_TICKET))
Alert("order exists", k);
{
如果((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))。
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue)。
Alert("error", GetLastError())。

}}}}
return(0);}

问题是什么,请帮助...........?????

你仍然可以这样尝试。

double TakeProfitBuy = NormalizeDouble((three - zero) / 4, Digits);
if (TakeProfitBuy<10*Point) TakeProfitBuy=10*Point;
double TakeProfitSell = NormalizeDouble((zero - two) / 4, Digits);
if (TakeProfitSell<25*Point) TakeProfitSell=25*Point;
 

什么是最好的方式。

- 在顾问中指定在哪些货币对和哪些时期进行交易

- 在一个货币对的图表上抛出一个具有必要预设时间框架的EA。

??

 

还有一件事--请不要耍小聪明,我是提前写好的,否则就不太愉快了。

这个问题的答案对我非常重要,所以请认真对待。

 
在我看来,第二种选择更加实用和方便。
 

下定决心并确定所选择的解决方案。

我也倾向于只在所需的货币对上抛出一个EA,或者为某些货币对编写一个EA。

我也倾向于选择直接把它扔上去。

至于交易者的品味,选择专家顾问并不那么重要。

 
明白了,非常聪明。我不是专家,但第二个选项要容易得多。
 
请帮助!专家顾问无法工作,根本无法交易。
原因: