関数IsDemo()
デモ口座かリアル口座を判定してくれます。
書式
bool IsDemo(); //引数はなし。返り値は真偽値(true,false)
戻り値
if(IsDemo()){ Print("デモ口座です"); }else{ Print("リアル口座です"); }
デモ口座だった場合は下記の画像のようになります。
ちなみに!(ビックリマーク)をつけると否定になります。
Print(IsDemo()); // 実行結果:true Print(!IsDemo()); //実行結果:false
画像の実行結果は下からです。
なので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(),