StopLevelとは
業者によって、StopLevelなるものが設定されていることがある。
StopLevelとは、StopLoss価格を設定するときに参照される制約である。
StopLevelによる制約に抵触する条件は以下のとおり、
現在の決済レート±StopLevel値幅 ∋ StopLoss価格
※
∋ は以内を意図する
現在の決済レートとは
買いポジションなら決済レートはBIDとなり、
売りポジションなら決済レートはASKとなる。
ポイントは、約定価格ではない、という点。
StopLevel値幅とは
例えばUSDJPYならば、MarketInfo("USDJPY", MODE_STOPLEVEL)で取得された値である。単位はMarketInfo("USDJPY", MODE_POINT)で得られる。
なお、StopLevelは、各通貨ごとに設定されている。
StopLoss価格とは
そのままの意味で、損切り注文の価格である。
補足というかコメント
StopLoss価格は、一般的には損失幅を確定するために約定価格から計算されると思われる。
しかし、MT4のStopLevelにおける制約は、あくまで現在の決済レートを基準に適用される。
このため、約定価格から損失幅を差し引いて得られたStopLoss価格(約定価格-StopLoss幅)とStopLevelの制約範囲(決済レート±StopLevel値幅)は、整合しない。
OrderSendの時点で、StopLossも合わせて設定するのであれば、あまり問題は無いのだろうが、ブローカーごとに処理を分けるよりは、毎回OrderSend、OrderModifyで解決を図ろうとしたところ、この問題に遭遇した。
[0回]
PR
ガッツリ書く気力がないので、手短に。
MT4へデータインポートを行うとき、
ある条件で、あるデータが削除された上にインポートされる!!!!
MT4側で、市場開局時間と閉局時間を持っている可能性が考えられる。
注意されたし。
[0回]
12051bytes
一度に読み込めるFileReadString は、上記バイト数が限界のようです。
PG素人にはつらい仕様だ。
なので、ループでの切り出しが必要です。
int hand=0;
string swb="";
hand=FileOpen("test.txt",FILE_BIN|FILE_WRITE);
while(!FileIsEnding(hand)){
FileSeek(hand_t,0,SEEK_END);
swb=swb+FileReadString(hand,10000);
}
こんなんで達成。
[0回]