getposition この関数は位置がないとエラーを返します

作者: リン・ハーンジャオチェン, 作成日: 2018-04-12 16:36:42, 更新日:

この問題についてどうやったら問題解決できるでしょうか? 口座にポジションがない場合は,次のコードを使用してポジション情報を取得します. while (true) { と表示する 変形した位置を表示します.

この式は,この式で 続きを読む {cH00ffff} type=position[0].Type 位置を表示する if ((type==PD_LONG) { 文字列を表示する 価格が上がった場合, 取消 待機する注文 exchange.SetDirection ((closebuy) について) exchange.Sell ((sellPrice,position[0].Amount) について 販売価格を表示する {cH00ffff} {cH00ffff} アカウントにポジションがないとき,getpositionは空の配列である[]で,if文内のcontinueを実行します.ループを再開させますが,実盤テストはエラーを返します. TypeError: cannot read property Type of undefined at main (タイプエラー: cannot read property) Type of undefined at main (タイプエラー: cannot read property) ファイル:129)

if の条件を変更しようとしたのですが,position[0]==null や typeof(position) ==undefined のいずれもうまくいかないし,type=position[0] の後に実行されます.

この問題はどのように解決されるのでしょうか?


もっと

ショングロンヒ解決策は以下の通りです. 変数値の定義は, if ((position.length>0) と表示されます. {cH00ffff} // このコードをこの大きな括弧に置いてください. 原則は次のとおりです. 先に,この保持関数が返した配列の長さを判断し,その長さは0を超える場合は,保持情報が表示されています. 直接null, undefineで判断することはできません. その後,position[0]にアクセスできます. {cH00ffff}

ユモントExchange.GetPositionに対してエラー容認関数を個別に設定する必要が感じられました.そうでなければ,この関数は,保管なしでほとんど使えません. 土地所有者に聞いてみてください.

小さな夢投稿を見て,この問題を発見しました. あなたが exchange.GetPosition ((() を呼び出すとき,あなたが持っていない場合は, [] を返します. 空の配列,この空の配列は null に等しくありません. それはあなたの判断です. position == null のとき, false ですので,continue を起動しません.その後,position[0] にアクセスすると,この要素は存在しないので, undefine になります.