コメントしたときに取引に入るか
//if(OpenOrdersThisPair(Symbol())==0)を入力するとき
LotSize = 0.1;
など、トレードを開始するまで遡り、そこで一度、何が問題なのかが分かるでしょう。
ロットサイズ "0 "でもロングで入ってしまうんです。
OpenOrderThisPairを変更してもうまくいかない......。うーん。なんか変だなぁ・・・。
OpenOrderThisPairを変更してもうまくいかない......。うーん。なんか変だなぁ・・・。
DomGilberto:
ロットサイズ「0」でもロングでエントリーされますね。OpenOrderThisPairを変更してもうまくいかない.うーん。なんか変だなぁ・・・。
ロットサイズ「0」でもロングでエントリーされますね。OpenOrderThisPairを変更してもうまくいかない.うーん。なんか変だなぁ・・・。
このテストが 0 以外を返した場合 ... ...
if(OpenOrdersThisPair(Symbol()) == 0)
... OrderSend()は呼び出されませんが、SellTicketOrderが0より大きいかどうかはまだ確認 します ... ...
これを実行する ... .
if (direction==1)//--Sell--// { { double ssl=sell_stop_price; double stp=sell_takeprofit_price; LotSize = (RiskedAmount/(pips_to_ssl/pips))/10; if(OpenOrdersThisPair(Symbol())==0) { int SellTicketOrder = OrderSend(Symbol(),OP_SELLSTOP,LotSize,sellPrice,3,ssl,stp,NULL,MagicNumber,0,Red); if(SellTicketOrder > 0) { Print("Order Placed #", SellTicketOrder); } else { Print("Order Send Failed, error # ", GetLastError()); } } }
これが実行されると、ロングサイドでは問題なく動作します(私は過去2時間これをいじり回しただけです)。というのも、移動平均のパラメーターに関連するIF文に関して、どこで間違っているのか(「CheckForMaTrade」関数を 呼び出すところ)、そして、もしそれが「true」なら、どのようにしてOrderEntryをOrderSendに送るのかが分かっているからです......つまり、私はあなたとある誰かを巻き込んでしまう可能性が高いのです。問題は、私はまだその部分を適切に書く方法を学んでいるということです...
//+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(OpenOrdersThisPair(Symbol())>=1) { if(UseMoveToBreakEven)MoveToBreakEven(); if(UseTrailingStop)AdjustTrail(); if(Use_MA_Trail)MA_Trail(); } if(IsNewCandle())CheckForMaTradeLong(); if(IsNewCandle())CheckForMaTradeShort(); //---- return(0); }
DomGilberto:
これが実行されると、ロングサイドでは問題なく動作します(私は過去2時間これをいじくりまわしていたところです)。というのも、移動平均のパラメーターに関連するIF文に関して、どこで間違っているのか(「CheckForMaTrade」関数を呼び出すところ)、そして、もしそれが「true」なら、どのようにしてOrderEntryをOrderSendに送るのかが分かっているからです......つまり、私はあなたとある誰かを巻き込んでしまう可能性が高いのです。問題は、私はまだその部分を適切に書く方法を学んでいるところです...
これが実行されると、ロングサイドでは問題なく動作します(私は過去2時間これをいじくりまわしていたところです)。というのも、移動平均のパラメーターに関連するIF文に関して、どこで間違っているのか(「CheckForMaTrade」関数を呼び出すところ)、そして、もしそれが「true」なら、どのようにしてOrderEntryをOrderSendに送るのかが分かっているからです......つまり、私はあなたとある誰かを巻き込んでしまう可能性が高いのです。問題は、私はまだその部分を適切に書く方法を学んでいるところです...
RaptorUK です。
もし、「Order placed # 12345」と表示されなければ、OrderSend()は呼び出されておらず、OpenOrdersThisPair()関数に問題があることになります。
もし、「Order placed # 12345」と表示されなければ、OrderSend()は呼び出されておらず、OpenOrdersThisPair()関数に問題があることになります。
では、....... どのようなエラーが発生するかなど ... ...
if(IsNewCandle())CheckForMaTradeLong(); if(IsNewCandle())CheckForMaTradeShort();私は操作を関数に ファクタリングすることを支持していますが、New Candle/New Barのほとんどのバリエーションについては、この関数は1回しか呼び出すことができないので、そうしません[per start()]。
int start(){ static datetime time0; bool isNewCandle = time0 != Time[0]; time0 = Time[0]; // Once per start only. : if(isNewCandle)CheckForMaTradeLong(); if(isNewCandle)CheckForMaTradeShort();
WHRoederさん、ありがとうございます。

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
なぜロングポジションはうまくいき、ショートトレードは全くうまくいかないのか理解に苦しんでいます。
私は、与えられたブローカーで小数点以下の桁数を決定するための私のinit関数に 関係しているような気がしています。(これは、私が最初にテスターを開始したときに、ファントムオーダーが最初に投げ出される原因であるように思われるので...)
なぜショート側がこのエラーを伝えるのか、どなたかお分かりになる方はいらっしゃいますか?
ありがとうございました。(コードは現在少し乱れていますが、もちろんきれいにするつもりです!)