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

 
001:

我无法理解编译器的逻辑。我有一个功能。我声明一个外部变量。

int start。

进一步的函数体

双倍B()
{

int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
如果(OrderType()==OP_SELL) {
如果(OrderProfit()< 0) {start=1;}

}

}

}

}

必须记住 起始变量的值,并在需要时将其等同于零。但在这种情况下,如果OrderProfit()<0,那么 start=1,如果OrderProfit()> 0,那么自动 start=0。

如果OrderProfit()> 0,变量将存储相同的值

 
Tantrik:
你能告诉我在哪里可以找到它吗? 都是英文的。
如果您无法将MetaEditor设置为俄文,请使用文件 链接。
 
ilunga:

如果OrderProfit()> 0,变量中的内容仍然是


这里有一个函数.

//+------------------------------------------------------------------+
double Balans()
{

int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//------------------------------------------------------------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if (OrderType() ==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}


//----------------------------------------------------------- }
Print(" start= ",start);
if(lot<0.01) lots=0.01;
lots=NormalizeDouble(lot,2);
return(lot);
}
//+------------------------------------------------------------------+

这里是日志。

16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: open#1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: close #1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 at price 2.03210
16:01:36 2007.07.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: open #2 sell 0。01 GBPUSD at 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: close #2 sell 0.01 GBPUSD at 2.02860 tp: 2.02770 at price 2.02890
16:01:36 2007.07.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: open #3 sell 0。01 GBPUSD at 2.03640 tp: 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: close #3 sell 0.01 GBPUSD at 2.03640 tp: 2.03550 at price 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: open #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: close #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 at price 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: open #5 sell 0。01 GBPUSD at 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: close #5 sell 0.01 GBPUSD at 2.05140 tp: 2.05050 at price 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: open #6 sell 0.01 GBPUSD at 2。04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Tester:take profit#6 at 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: open #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 ok
16:01:36 2007.7.20 08:00 Bars_Trader GBPUSD,M1: close #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 at price 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: open #8 sell 0.01 GBPUSD at 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 测试员:在2.06070 (2.06040 / 2.06070)处获利#8
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0

 
001:


这里有一个函数.

//+------------------------------------------------------------------+
double Balans()
{

int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//------------------------------------------------------------
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
如果(OrderType()==OP_SELL) {
如果(OrderProfit()<0) {start=true;}
}
}

//-----------------------------------------------------------
}
Print(" start= ",start);
如果(lot<0.01)lot=0.01。
lots=NormalizeDouble(lot,2);
return(lot)。
}
//+------------------------------------------------------------------+

这里是日志。

16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: open #1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: close #1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 at price 2.03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.13 16:04 Bars_Trader GBPUSD,M1: open #2 sell 0.01 GBPUSD at 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: close #2 sell 0.01 GBPUSD at 2.02860 tp: 2.02770 at price 2.02890
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: open #3 sell 0.01 GBPUSD at 2.03640 tp: 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: close #3 sell 0.01 GBPUSD at 2.03640 tp: 2.03550 at price 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: open #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: close #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 at price 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: open #5 sell 0.01 GBPUSD at 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: close #5 sell 0.01 GBPUSD at 2.05140 tp: 2.05050 at price 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: open #6 sell 0.01 GBPUSD at 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 测试者:在2.04750(2.04760/2.04790)处获利#6。
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: open #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: close #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 at price 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: open #8 sell 0.01 GBPUSD at 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 测试者:在2.06070(2.06040/2.06070)处获利#8。
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start=0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start=0

更全面地展示代码。例如现在你看不到这个变量是在哪里声明的。

 
ilunga:

更全面地展示代码。例如,现在你看不到这个变量是在哪里声明的。


局外人TF。
外来的INT TP;
外来的INT BARS。
外置 int BarrierMinute;
外来的int Step=0。
//--------
外部双ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
外置双数Decrease=2。
外部的inttern Wait=2。
外在的,内在的,重复的。
extern int int MA_Sell;
extern int int Applied_Price_Sell;
//extern int MAPeriod_1;
//extern int Calc=8。
外来的双倍Lots=5。
//----
static int PrevTime=0;
双层地段。
呼叫 "等待""开始"、"步骤"、"重复"。
datetime openTime=0。
double lot=0.1。
 
sergovan 26.01.2012 07:27 | 被禁止 |删除

你好,你能告诉我如何将我的EA中的OP_BUYSTOP和OP_SELLSTOP订单改为OP_SELLLIMIT和OP_BUYLIMIT吗? 我试过了,我的BUYLIMIT订单已经下了,但SELLLIMIT的订单却不以为然,也许我做错了什么?


附属文件
Expertd10.mq4(5.82 KB) 删除
 

朋友们好,请你们帮我解决这个问题好吗?

我在写一个带软件止损的专家顾问,算法的基本方案如下。


int start()
{double x, PreProfit, TekProfit;
for (x=0; x<1; x++) //For 循环操作(理论上)应该执行1次
{PreviousProfit=(-20);}//分配1次值(理论上)!

TextProfit=OrderProfit();//找到所选订单的利润
if (PredPreviousProfit<TecProfit)//如果当前利润高于前一个,则...
{WeakProfit=TekProfit;}//给PredCompetitive变量分配一个新的值!
//那么PredCompanyProfit变量应该持有所有时间的最高利润值!
}


问题是,变量 "x "的值在一个新的刻度线上被重置为零,而值(-20)在每一个新的刻度线上被分配 给 "PredPreCompetition "变量。因此,整个算法的意义就丧失了!"。PrevPreprofit "变量被设计为不断保持订单利润的最大值,直到订单被关闭时被迫 "抛弃 "这个值。

错在哪里呢?也许对这个问题还有其他的解决办法?我事先非常感谢!

 
bis:

问题是,一个新的刻度线的变量 "x "的值被重置为零,并且每一个新的刻度线都要对变量 "PredPreprofit "进行赋值(-20)。因此,整个算法的意义就丧失了!"。PrevProfit "变量被设计为永久保持订单的最大利润值,直到订单关闭时强制 "重置 "该值。

错在哪里呢?也许对这个问题还有其他的解决办法?提前感谢!

https://docs.mql4.com/ru/basis/variables/static
 
FAQ:
sergovan 26.01.2012 07:27 | 被禁止 |删除

你好,你能告诉我如何将我的EA中的OP_BUYSTOP和OP_SELLSTOP改成OP_SELLLIMIT和OP_BUYLIMIT吗? 我试着改成BUYLIMIT,但SELLLIMIT根本不认为,也许我做错了什么?


Expertd10.mq4(5.82 KB) 删除


你在改变它的时候不是忘记了出价和要价吗?
 

谁知道如何使一个标准指标在策略测试器中 可见?