Как в MQL4 реализовать такое в начале дня устанавливаем два отложенных ордера После того как один(любой) сработал - второй удаляется За пять минут до закрытия бара(допустим дневного) закрыть сработавший (если он не был закрыт по SL или TP) Если ни один отложенный ордер не соработал то за пять минут до закрытия бара удаляем их обоих Заранее спасибо
procedure Test2(var i: integer); stdcall;
begin
if addr(i) = nil then ShowMessage('What the hell?');
end;
stopとして呼び出す。
#import "DLL1.dll"
void Test2(int& i);
私は
int init() {
int x = 5;
Test2(x);
return(x);
}
呼び出されると、変数 integer への参照がスタックにあるはずだが null がある
では int のパラメータを参照で渡すにはどうするか?
配列を渡す場合、配列の値は参照渡し
使用
MetaEditor 4.00 build 183
MetaTrader 4.00 build 186
もう一つの質問:文字列を参照渡しした場合、文字列バッファのサイズは?
もう一つの質問:
関数の結果として文字列を渡した場合、その文字列に割り当てられるメモリ領域はどこでしょうか?DLL内のグローバル変数 へのポインタを渡すべきですか?この場合、メタトレーダーのどのモードでも、異なるスレッドから同時にDLLが呼び出されることはないのでしょうか?
ありがとうございました。
一日の初めに2つの保留注文を 設定
1つ(いずれか)がトリガーされると - 2つ目は削除される
バー(例えば日足)のクローズの5分前にトリガーされたものを閉じる(SLまたはTPによって閉じられなかった場合)
もし保留注文が発動されない場合はバーを閉じる5分前にそれらを両方とも削除
どうもありがとうございました。
2) 関数の結果として文字列を渡す場合、文字列用のメモリ領域はどこに割り当てればよいのでしょうか?DLL内のグローバル変数 へのポインタを渡すべきですか?この場合、メタトレーダーのどのモードでも、異なるスレッドから同時にDLLが呼び出されることはないのでしょうか?
ありがとうございました。
1つ(いずれか)がトリガーされたとき - 2番目は削除されます
バー(毎日を言う)の終了前に5分トリガー(それは、またはTPによって閉じられなかった場合)閉じる
トリガー保留注文がなかった場合、バーを閉じる前に5分それらを両方削除
前もってありがとうございます。
適切なタイミングでペンディングオーダーを設定する(簡単ですね)。そして、オーダーを確認し始めるのです。買いや売りの注文が出たらすぐに、保留中の注文を削除 する作業を行います(さらに簡単)。そして、タイミングを見計らって、すべての注文を決済する作業をする(これは簡単だ)。
в начале дня устанавливаем два отложенных ордера
После того как один(любой) сработал - второй удаляется
За пять минут до закрытия бара(допустим дневного) закрыть сработавший (если он не был закрыт по SL или TP)
Если ни один отложенный ордер не соработал то за пять минут до закрытия бара удаляем их обоих
Заранее спасибо
こうして実装すると、適切なタイミングでペンディングオーダーを入れるのです(簡単ですね)。そして、オーダーを確認し始めるのです。買いまたは売りの注文が表示されたら、すぐに保留中の注文を削除して作業します(これはさらに簡単です)。そして、適切なタイミングで、すべての注文を決済する作業を行います(とても簡単です)。
動作するコードをお願いしました(もしかしたら誰かが実装しているかもしれません)。
私がしたすべてが動作しませんでした...odrerdeleteのプロセスは、何らかの形で混乱を招いています。
もう一つの質問:価格が何分間かフリーズ(ティックがない)することがあります。つまり、他のシンボルではティックを受信しているのに、int start() 本体が実行されないので、注文を閉じることができません。ティックのあるシンボルから Curetime 値を渡すことは可能でしょうか?
簡単に言うと、Curetimeの値は実質的にフリーズしません。
そして、このコード片は何をするものなのでしょうか?まだ発動していない
保留中の注文を 両方削除します。