whats wrong with this code?

Jul 31, 2016 at 06:54
492 개의 뷰
5 Replies
Oct 23, 2012 부터 멤버   게시물349
Jul 31, 2016 at 06:54
if(max_spread_filter && (Ask-Bid)/myPoint>max_spread) enableopen=false;


gives a critical error when trying to backtest?
if you follow the flock like sheep you always end up stepping in shit!
forex_trader_25447
Dec 21, 2010 부터 멤버   게시물131
Aug 01, 2016 at 03:51
Possible errors :
1. Type of 'max_spread_filter' not 'bool'
2. 'myPoint' == 0.0
Nov 14, 2015 부터 멤버   게시물325
Aug 01, 2016 at 11:27
Divide by zero is the only critical error that can give. Basically myPoint is 0.
Jul 29, 2011 부터 멤버   게시물5
Aug 04, 2016 at 05:58
very difficult to say without seeing how u declared the variables like max_spread_filter.. at first glance altho its not required always you should bracket the execution portion after your if statement runs. If youd like me to help I'd have to see more of the code. One more thing, it doesnt look like MyPoint has any value. Again, very difficult to say just from one snippet of code bc we need to see the declarations and how the code flows.
Losers Average Losers && Never throw good $ after bad trading.
Oct 23, 2012 부터 멤버   게시물349
Aug 05, 2016 at 04:01
extern bool max_spread_filter=true;
extern double max_spread=5.0;

double myPoint, mySpread, myStopLevel,myTickValue,myTickSize,myLotValue;
int myDigits;

init:


SetPoint();

start:


 bool enableopen = true;
   if(max_spread_filter && (Ask-Bid)/myPoint<max_spread) enableopen=false;
 if(enableopen)



function:


void SetPoint()
{

   myPoint = MarketInfo(Symbol(),MODE_POINT);
   mySpread = MarketInfo(Symbol(),MODE_SPREAD);
   myDigits = MarketInfo(Symbol(),MODE_DIGITS);
   myStopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
   myTickValue = MarketInfo(Symbol(),MODE_TICKVALUE);
   myTickSize = MarketInfo(Symbol(),MODE_TICKSIZE);
   myLotValue = myTickValue/myTickSize;

   if(
         myDigits==3 ||
         myDigits==5
     )
      {
         myPoint = myPoint * 10;
         mySpread = mySpread / 10;
         myStopLevel = myStopLevel / 10;
         myDigits = myDigits -1;
      }

}
if you follow the flock like sheep you always end up stepping in shit!
forex_trader_25447
Dec 21, 2010 부터 멤버   게시물131
Aug 05, 2016 at 04:45
I see some syntax errors .
You probably know some other language , and try to write as You know.
You have to write like this :

double myPoint, mySpread, myStopLevel,myTickValue,myTickSize,myLotValue;
int myDigits;

init()
{
SetPoint();
}

start()
{
 bool enableopen = true;
   if(max_spread_filter && (Ask-Bid)/myPoint<max_spread) enableopen=false;
 if(enableopen) {} // HERE write OPERATOR for this 'if'
}


// function // No such word in MQL
// Everything below is OK.
로그인 / 가입하기 to comment
You must be connected to Myfxbook in order to leave a comment
*상업적 사용 및 스팸은 허용되지 않으며 계정이 해지될 수 있습니다.
팁: 이미지/유튜브 URL을 게시하면 게시물에 자동으로 삽입됩니다!
팁: @기호를 입력하여 이 토론에 참여하는 사용자 이름을 자동으로 완성합니다.