if (OrderType()==OP_BUY && (Bid-8*D*Point)>OrderStopLoss()&&(Bid-8*D*Point)>OrderOpenPrice())
{chk=OrderModify(OrderTicket(),0,NormalizeDouble(Bid-7*Point,Digits),NormalizeDouble(OrderOpenPrice()+25*D*Point,Digits),0,0);}
......しかし、売り 注文のための同じものは、SLを 設定しません... ...
if (OrderType()==OP_SELL &&(Ask+8*D*Point)<OrderStopLoss()&&(Ask+8*D*Point)<OrderOpenPrice())
{chk=OrderModify(OrderTicket(),0,NormalizeDouble(Ask+7*Point,Digits),NormalizeDouble(OrderOpenPrice()-25*D*Point,Digits),0,0);}
if (OrderSymbol()==Symbol()&&OrderType()==OP_SELL&&OrderLots()<=Lot*3&&(Ask+(Tral+TP)*D*Point)<OrderOpenPrice()&&((OrderStopLoss()!=0&&(Ask+Tral*D*Point)<OrderStopLoss())||OrderStopLoss()==0))
{chk=OrderModify(OrderTicket(),0,NormalizeDouble(Ask+Tral*D*Point,Digits),NormalizeDouble(OrderOpenPrice()-Stepp*D*Point,Digits),0,0);}}
for(inti=1; i<=OrdersTotal(); i++)//Цикл по всем ордерам,..{//отражённым в терминалеif(OrderSelect(i-1,SELECT_BY_POS)==true)//Если есть следующий{// Здесь должен выполняться ..// ..анализ характеристик ордеров }}//Конец тела цикла
運動=生、休息=死というテーゼ。ログには何と書かれているのでしょうか?
もし自分が持っていたら、点検して直しますよ.
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
初心者の方からの質問 MQL4 MT4 MetaTrader 4
イリヤ・プロズメントフ, 2017.06.11 13:53
配列を操作するためのクラステンプレートがあります。このテンプレートクラスでは、配列が複雑なデータ型を 格納できることを考慮し、ソートを実装する必要があります。例えば、こんな感じです。
ArrayList<PP*> *dde; // PP - класс
単純な型と複雑な型に別々の関数を書くことはできるのですが、コンパイラは関数がデータ型によって厳密に区切られていることを理解できず、悪態をつき続けています。
'<' - 不正な操作 use ArrayList.mqh
そこで、インターフェイスを埋め込むことにしたのです。
コンストラクトの全パートをコンパイルします。しかし、それを宣言しようとすると
ArrayList<PP*> *dde; // PP - класс
で、そのファイルをコンパイルすると、以下のようなエラーになります。'クイックソート' - テンプレート不一致 varQSort.mqh /*error 1*/
'=' - 型の不一致 ArrayList.mqh /*error 2*/
追伸この型の不一致を解消するには、コードのどこを修正すればよいのでしょうか?そもそも、なぜそれが発生したのかがわからない。
'<' - 不正な操作 varQSort.mqh を使用します。
この構成でも私を悩ませているのです。私が解消したかったのは、まさにこのエラーなのです。でも、このエラーはわかるけど、この2つはわからない。
例えば月曜日に、2つまたは3つの取引を開く必要がある場合、関数は時間を比較してパイプを送信しますが、私はこれまでに比較した1つの時間を持っています。
なぜなら、「ダウンロード」ボタンを押すと、6,000 000件の名言がダウンロードされるからです。 名言データでハードディスクをいっぱいにして、ダウンロードされるまで長時間待ち、名言表から不要なデータを削除したい人はそういないはずです。
ハローディア.BUY 注文で指定したトレイリングストップコードが 正しく機能する理由を教えてください ...
......しかし、売り 注文のための同じものは、SLを 設定しません... ...
...原因は(Ask+8*D*Point)<OrderStopLoss() という条件にあると思われ、 これを外せばSLは 設定されますが、 Trailing Stopは 条件を指定しないと正しく動作しないようです ...
BUY 注文の 場合、(Bid-8*D*Point)>OrderStopLoss()の条件、 OrderStopLoss()==0なら正しく受け入れられる(つまり何らかの値>0)......。
...しかし、条件(Ask+8*D*Point)<OrderStopLoss(),OrderStopLoss()==0 は正しくありません( つまり、ある値が< 0 に
なっている) ...売りの注文でトレイリングストップを正しく
動作させるために必要な条件(Ask+8*D*Point)<OrderStopLoss
() をコードで正しく定式化
する方法を教えてください
。
回答してくださった皆様に前もって感謝
します。こんにちは:インジケータがティック履歴 ファイルを読み込む機能があります。しかし、読み込まれるのは一度だけで、インジケータがロードまたは更新されたときに読み込まれます。ゼロバーの最初のティックが表示されたときに毎回読み取るようにするにはどうしたらよいでしょうか。
void ProcessOldCandles(int limit, TickStruct &lastTick)
{
int hTicksFile = FileOpen(Symbol() + ".tks", FILE_BIN | FILE_READ | FILE_SHARE_READ | FILE_SHARE_WRITE);
if (hTicksFile < 1)
return;
TickStruct tick;
while (!IsStopped())
{
if (!IsReadTimeAndBidAskOfTick(hTicksFile, tick))
return;
if (tick.time >= Time[limit])
break;
}
lastTick = tick;
int barIndex = iBarShift(NULL, 0, tick.time);
while (barIndex >= 0)
{
if (!IsReadTimeAndBidAskOfTick(hTicksFile, tick))
return;
if (!IsTickBelongToBar(tick, barIndex))
barIndex = iBarShift(NULL, 0, tick.time);
ProcessOneTick(barIndex, tick, lastTick);
}
FileClose(hTicksFile);
ハローディア.BUY 注文で指定したトレイリングストップコードが 正しく機能する理由を教えてください ...
......しかし、売り 注文のための同じものは、SLを 設定しません... ...
...原因は(Ask+8*D*Point)<OrderStopLoss() という条件にあると思われ、 これを外せばSLは 設定されますが、 Trailing Stopは 条件を指定しないと正しく動作しないようです ...
BUY 注文の 場合、(Bid-8*D*Point)>OrderStopLoss()の 条件で、 OrderStopLoss()==0が正しく取られる(つまり何らかの値>0) ...。
...しかし、OrderStopLoss()==0 の時に(Ask+8*D*Point)<OrderStopLoss() という条件は正しくないと思わ れます(つまり、ある値が< 0
)・・・・。売りの注文でトレイリングストップを正しく
動作させるために必要な条件(Ask+8*D*Point)<OrderStopLoss
() をコードで正しく定式化
する方法を教えてください
。
回答してくださった皆様に前もって感謝
します。こんにちは、すべて...このフォーラムのブランチで何か非常に低いアクティビティ...この問題はこうして解決される
...少し長いですが、効果ありです...。もっと短く書く方法を知っている人、短縮してくれませんか、お願いします...それ以外の人は、そのまま使えばいいんです。
機能を入力する
OrderCloseByTicket (542534564)
フルロットでチケットによるクローズオーダーを行う。
ロット、価格、スリッページを指定する必要がないようにします。
端末で注文の十字をクリックするのと同じです。
機能を入力する
OrderCloseByPos (0)
ポジションでオーダーを閉じる。
そうすれば、このような面倒な構造を規定する必要はなくなるのです。
こんにちは!2つのマイナス数qとwが等しいときに、if演算子が一方が他方より大きいと思ってしまう、間違った比較をしています。q=-0.0002でwも-0.0002のとき、res12=falseとなりますが、なぜでしょうか?