デモ口座かリアル口座かを教えてくれるIsDemo()関数(MQL4)

関数IsDemo()

デモ口座かリアル口座を判定してくれます。

書式

bool IsDemo();		//引数はなし。返り値は真偽値(true,false)

戻り値

if(IsDemo()){
   Print("デモ口座です");
}else{
   Print("リアル口座です");
}

デモ口座だった場合は下記の画像のようになります。
実行結果:デモ口座です

ちなみに!(ビックリマーク)をつけると否定になります。

Print(IsDemo()); // 実行結果:true
Print(!IsDemo()); //実行結果:false

画像の実行結果は下からです。
実行結果:false true

なのでif文でelseを記述しないようにするには下記のようにします。

if(!IsDemo()){
   Print("リアル口座です");
}

サンプル

//グローバル変数
extern int MagicNumber = 12345;
int sellTicket = 0;
int buyTicket = 0;
bool flag = true;



void OnTick(){

   int slippage = 30;   

   // デモ口座で自動売買開始後すぐに両建てエントリーしてすぐに両建て決済をしているサンプル
   //スプレッドの分だけ損するコードです(笑)
   if( IsDemo() == true ){
   	//両建てエントリー	
   	if( flag == true ){
   		//買
   		buyTicket = OrderSend(
   					Symbol(),OP_BUY,MarketInfo(Symbol(),MODE_MINLOT),
   					MarketInfo(Symbol(),MODE_ASK),slippage,0,0,"OP_BUY",MagicNumber,
   					0,clrNONE
   				);
   		//売
   		sellTicket = OrderSend(
   					Symbol(),OP_SELL,MarketInfo(Symbol(),MODE_MINLOT),
   					MarketInfo(Symbol(),MODE_BID),slippage,0,0,"OP_SELL",MagicNumber,
   					0,clrNONE
   				);
   										
   		if( buyTicket == -1 ){
   			Print( GetLastError() );  //エラー内容を出力
   		}
   
   		if( sellTicket == -1 ){
   			Print( GetLastError() );  //エラー内容を出力
   		}
   
   		flag = false;
   	}
   
   	//両建て決済
   	if( flag == false ){
   		if(OrderSelect(buyTicket,SELECT_BY_TICKET,MODE_TRADES) && OrderSelect(sellTicket,SELECT_BY_TICKET,MODE_TRADES) ){
   			bool res = OrderCloseBy(buyTicket,sellTicket,clrNONE);
   			if( res == false ){
   				Print( GetLastError() );  //エラー内容を出力
   			}
   		}
   		buyTicket=0;
   	   sellTicket=0;
   	}
   }
}

関数OrderCloseBy(),関数OrderSelect(),関数OrderSend(),関数MarketInfo(),

シェアする

  • このエントリーをはてなブックマークに追加

フォローする