どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 608

 
solnce600:

皆さん、ごきげんよう。

以下の条件の最適な コーディング方法を教えてください。

1から20までのローソク足がすべて例外 なく弱気だった場合(各ローソク足の始点と終点の間のポイント数は関係ない)。

注文を開くには

そのためには、「作り置き」の注文書を書くしかない。


手書き」で書ければいいんですけどね。

if(f) OrderSend(...); // открыть ордер Sell


bool f()
{
   for(int i = 1; i <= 20; i++)
    {
     if(Open[i] < Close[i]) return(false);
    }
    return(true);
}
 
AlexeyVik:

まあ、その場で書かれたものなら別ですが。


ありがとうございました。
 
fmv_for_a_way:

市民の皆さん、アルパリの端末で注文ができない理由を教えてください。

OrderSend関数は次のようなものです。

0に等しいパラメータは存在しない。確認しました。

端末の条件による最小停止距離と利益距離=0.

端末はエラー130を発生させ、無効な利益またはストップについて書き込む。

SLとTPのパラメータはそれぞれ11と1(正規化後)。

Aforex, Diven FX, ForexClub, AlfaForexの端末では、同じコードで問題なく使用できます。

買いの場合、StopとTakeはBid価格からカウントされます。

第二に、ストップ高を計算するため、正規化する必要があります。これまでのSLとTPの正規化は何の意味もない。そして、取引注文では、正規化されていない式の値を代入するのです。

第三に、すべての価格は取引要件と制限に 従わなければなりません。StopLevel レベルは、例えば、ストップオーダーのサイズよりも大きいかもしれません。

 

なぜそうなるのか、アドバイスをお願いします。

3つの条件(太字)があり、同時に実行されると、注文は正常に開始されます。

int start()

{

int ot =OrdersTotal();

int index=iHighest(NULL,0,MODE_HIGH,20,1);
int index1=iLowest(NULL,0,MODE_HIGH,20,1);
int index3=iLowest(NULL,0,MODE_HIGH,40,20);

if(Low[index1]==Low[1])

if(High[index]==High[20])

if(Low[index3]==Low[40]

if ( ビッド==ロー[40])

if (ot==0)

オーダー送信(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-300*Point, "jfh",123 )

課題

4つ目の条件(赤で 表示)を追加すると、4つ目の 条件が満たされたときのみ注文が開始されます。

前の3つの条件は、プログラムによって無視されます。

条件を&&で書いてみましたが・・・うまくいきません。

4つの条件が同時に満たされたときに、令状が開かれるようにするにはどうしたらよいでしょうか。

ありがとうございます。

 
solnce600:

なぜそうなるのか、アドバイスをお願いします。

3つの条件(太字で 表示)を同時に実行することで、正常に注文を開始することができます。

int start()

{

int ot = OrdersTotal();

int index=iHighest(NULL,0,MODE_HIGH,20,1);
int index1=iLowest(NULL,0,MODE_HIGH,20,1);
int index3=iLowest(NULL,0,MODE_HIGH,40,20);

if(Low[index1]==Low[1])

if(High[index]==High[20])

if(Low[index3]==Low[40]

if ( ビッド==ロー[40])

if (ot==0)

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-300*Point, "jfh",123 );

課題

4つ目の条件(赤で 表示)を追加するとすぐに、4つ目の 条件が満たされたときだけ注文が開くようになりました。

プログラムは、前の3つの 条件を無視します。

条件を&&で書いてみましたが・・・うまくいきません。

4つの条件をすべて満たすと、すぐに令状が発行されるようにするにはどうしたらよいでしょうか。

ありがとうございます。

アルゴリズムはうまくいくはずなので、中括弧を拡張してください。
削除済み  
artmedia70:

買いの場合、ストップとテイクはBid価格から計算されます - これが1つです。

次に、逆指値注文の価格を計算する場合、正規化する必要があります。SLとTPが先に正常化されたことは大した問題ではありません。そして、取引注文では、正規化されていない式の値を代入するのです。

第三に、すべての価格は、取引業務の要件と制限を 遵守する必要があります。StopLevelのレベルは、例えば、ストップオーダーのサイズより大きくてもよい。



昨日からアルパリで成行執行に切り替えています。

まず、sl=0;tp=0の買い/売り、次にsl=100;tp=300を修正します。

 
AlexeyVik:
アルゴリズムはうまくいくはずなので、中括弧を拡張してください。

ありがとうございます。
 
pako:


昨日からアルパリで成行執行に切り替えています。

まず買い/売り sl=0;tp=0;次に修正 sl=100;tp=300。

これも同じ場所にあります。もちろん、一方が他方を否定しているわけではありません。AskからのBuyのストップオーダーをカウントしています。正常化させるものではありません。StopLevelの距離制限をチェックしない。

要するに、ごった煮です。

削除済み  
質問が削除される、素晴らしい。
[Deleted]  
pako:


アルパリは昨日から市場取引に切り替えています。

まず買い/売り sl=0;tp=0;次に修正 sl=100;tp=300。


アドバイスありがとうございました。調べてみます。成行執行に切り替えるということは、保留中の注文も ストップとプロフィットをゼロにしてから修正するということでしょうか?