[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 737

 
trader265:
皆さん、どうもありがとうございました。すぐに取り掛かります。うまくいかなかったら、迷惑かけてもいい?

今日は誰もいなくても、明日にはあなたの投稿が目に留まるはずです。ここは、一日の終わりにみんなが帰るようなオフィスではありませんから :)
 
drknn:


ロジックは以下の通りです。

インジケータ・バッファが8個という制限は、言語そのものに起因するものです。どうせRAM+スワップファイルのサイズを超えることはできないのだから、他のアレイの数を制限する意味はない。したがって、やりすぎても意味がないのです。 配列に対して一定量のメモリが割り当てられるということです。

私の問題です:'SymbolSellColor' - 内部スタックオーバーフロー - プログラムを簡素化してください。

スタックを増やしても効果がない。コードはシンプルに、複雑なものを書くのは苦手です。RAM、スワップ......問題ない、十分だ。

 
Abzasc:

私の問題です: 'SymbolSellColor' - 内部スタックオーバーフロー - プログラムを簡素化してください。

Stack overflow - 役に立ちません。コードは単純です、複雑なものを書くのは苦手です。RAM、スワップ......問題ない、十分だ。


開発者に聞く - もしかしたら、私たちの知らない問題があるかもしれません。
 

保留中の注文が 開かないのはなぜか、質問があります。

extern int TakeProfit=100;
extern int StopLoss=100;
extern double Lot=0.01;
extern int StartTime=0;
int Today=0;
int h=100;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
int total = OrdersTotal();
if(total == 0)

   {NewOrder(OP_BUY,Lot);
    NewOrder(OP_SELL,Lot);
    NewOrder(OP_BUYLIMIT,Lot);
    Today=TimeDay(TimeCurrent());}
return(0);}

  
//+------------------------------------------------------------------+
int NewOrder(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double PR1=0; //Цена1
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUY)
   {PR=Ask;
    if(TakeProfit>0) TP=Ask+TakeProfit*Point;
    if(StopLoss>0) SL=Ask-StopLoss*Point;}
if(Cmd==OP_SELL)
   {PR=Bid;
    if(TakeProfit>0) TP=Bid-TakeProfit*Point;
    if(StopLoss>0) SL=Bid+StopLoss*Point;}
if(Cmd==OP_BUYLIMIT)
   {PR1=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;}
int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,0,0,CLR_NONE);
int tic1=OrderSend(Symbol(),Cmd,Lot,PR1,3,SL,TP,0,0,CLR_NONE);
if(tic<0) Print(GetLastError());
if(tic1<0) Print(GetLastError());
return(tic);}
 
FoxUA:

質問 保留注文が開けないのは何のエラーなのでしょうか?

あなたのコードで私のコメントを認識しました :))))))))))。

関数にパラメータとして渡したものと、関数が実行されたときに取得したものを正確にチェックし、それをプリントアウトします。

 
drknn:
あなたのコードで私のコメントを認識しました :))))))))))。

関数にパラメータとして渡すものと、関数が実行されたときに取得するものを正確にチェックし、それをプリントアウトします。


レゴコンストラクタを3時間ほど集めているのですが、保留中の注文が開こうとしません。
 
drknn:
あなたのコードで私のコメントを認識しました :))))))))))。

関数にパラメータとして渡すものと、関数が実行されたときに取得するものを正確にチェックし、それをプリントアウトします。


次の機能の作り方がわかりました

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,0,0,CLR_NONE);


この関数の後

int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR1=0; //Цена1
while(!IsTradeAllowed()) Sleep(100);

if(Cmd==OP_BUYLIMIT)
   {PR1=Ask-Point*h;
    if(TakeProfit>0) TP=PR1+TakeProfit*Point;
    if(StopLoss>0) SL=PR1-StopLoss*Point;}

int tic1=OrderSend(Symbol(),Cmd,Lot,PR1,3,SL,TP,0,0,CLR_NONE);

if(tic1<0) Print(GetLastError());
return(tic1);}
 

なるほど、演算子を1つのパラメータだけでなく、他のパラメータも含めて設定する必要があるんですね。

 

質問ですが、注文の有効期限はどのような機能で管理されているのでしょうか? 私にはそれが見えず、147 Use theexpiry date is not allowed by brokerと書かれています。

 

expiration- 保留注文の有効期限。有効期限が来ると、取引サーバー上で自動的に注文が決済されます。一部の取引サーバーでは、注文の有効期限の適用が禁止されている場合があります。この場合、パラメータに0以外の値を設定しようとすると、取引注文は 拒否されます。

注文が拒否されないようにするには、どのような値を設定すればよいですか?