您好,您如何從 mql4 終端中當前所有未結訂單中獲取淨點數?
OrderSelect 是一個布爾值,所以 #8220;==1#8221;不需要#8217;不需要。乘以 0.1 將點數轉換為點數。如果後面只有一件事,則不需要括號。也總是倒計時你的訂單。但是是的,我有一些錯別字Originally Posted by ;
在我的手機上做。我剛剛編輯了它。
像這樣的東西:插入代碼 double sum=0; for(int o=OrdersTotal()-1;ogt;=0;o#8212 if(OrderSelect(o,SELECT_BY_POS,MODE_TRADES){ RefreshRates(); if(OrderType()==0)sum =Bid-OrderOpenPrice (); if(OrderType())sum =OrderOpenPrice()-Ask;} sum*=0.1; Print(#8220;Order Pip Sum=#8220; (string)sum);Originally Posted by ;
為什麼要將總和乘以 0.1?你的括號呢,好像for循環缺少它們?這是我的嘗試.... 插入代碼 double calcNetPips() { double sum=0; for(int i=0; ilt;OrdersTotal; i ) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == 1) { RefreshRates(); if(OrderType==0) sum =Bid-OrderOpenPrice();否則 sum =OrderOpenPrice()-Ask; } } 返回總和*=0.1; }Originally Posted by ;
您是否使用了您的代碼,尤其是#8220;else#8221;?如果你使用#8220;else#8221;以下 #8220;if(OrderType()==0)#8221;那麼它還將在總和中包括掛單。 Inserted Code if(OrderType()==0)//buy market order else {}//all other orders market pending I#8217;我不確定這是否是您的問題,但如果是,您需要明確說明訂單類型分別。插入代碼 if(OrderType()==0)/買市價單 if(OrderType()==1)//也賣市價單 if(OrderType())//賣市價單/也可以使用枚舉條款:/OP_BUY=0,OP_SELL=1 if(OrderType()==OP_BUY) if(OrderType()==OP_SELL) 也不能返回賦值,所以:return sum*=0.1;不管用;需要先做乘法然後返回值:插入代碼 sum*=0.1;返回總和;/或返回總和*0.1;Originally Posted by ;